2012-06-21 2 views

Répondre

3

Oui, bien sûr que c'est possible. Vous pouvez utiliser une case à cocher standard:

@Html.CheckBoxFor(
    x => x.Foo, 
    new { 
     data_url = Url.Action("SomeAction", "SomeController"), 
     id = "mycheckbox" 
    } 
) 

puis dans votre fichier JavaScript distinct utiliser jQuery pour vous abonner à l'événement de changement de cette case à cocher et discrètement AJAXify il:

$(function() { 
    $('#mycheckbox').change(function() { 
     var data = {}; 
     data[$(this).attr('name')] = $(this).is(':checked'); 

     $.ajax({ 
      url: $(this).data('url'), 
      type: 'POST', 
      data: data, 
      success: function(result) { 
       // TODO: do something with the result  
      } 
     }); 
    }); 
}); 
+0

merci beaucoup, – Victor

+0

Est-ce que ce travail? Ou 'data_url' devrait-il être' data-url'? – philreed

+2

Oui, cela fonctionne. Vous ne pouvez pas avoir de propriété dans .NET appelée 'data-url'. Les helpers dans ASP.NET MVC sont assez intelligents pour interpréter 'data_url' comme l'attribut' data-url' lors de la génération du balisage. C'est une convention. –

Questions connexes