在MVC中回传RadioButtonFor

时间:2011-02-12 10:54:28

标签: c# asp.net-mvc radiobuttonfor

我的mvc网页上有2个单选按钮。

 <% using (Html.BeginForm("Search", "Search"))
   { %>
  // some html codes
     <%= Html.RadioButtonFor(m => m.Agents, "A", new { Checked = "checked" })%> //radio button 1                     
      <%= Html.RadioButtonFor(m=> m.Agents,"AG") %>  //radio button 2                      
  // some html codes
   <% } %>

aspx页面如下所示。

我的页面也有按钮。如果我点击该按钮,则会发生回发。

如果我更改了radiobutton选择,我需要另一个回发。如何在该事件上进行回发。但如果我更改了单选按钮的选择,则没有回发。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

这是使用单选按钮进行回发的一种方式:

<label>@Html.RadioButton("Buyer", "Buyer", new { onchange = "this.form.submit();" })Buyer</label>

答案 1 :(得分:5)

您需要使用javascript。当用户更改单选按钮的选择时,不会发生服务器端事件。因此,如果您使用的是jquery,则可以订阅.change()事件并提交表单:

<% using (Html.BeginForm("Search", "Search", FormMethod.Post, new { id = "myform" })) { %>
    <%= Html.RadioButtonFor(m => m.Agents, "A", new { @checked = "checked", @class = "radio" }) %>
    <%= Html.RadioButtonFor(m => m.Agents, "AG", new { @class = "radio" }) %>
<% } %>

然后在单独的javascript文件中:

$(function() {
    $('#myform .radio').change(function() {
        $('#myform').submit();
    });
});