RAZOR当用户点击组件时如何触发事件

时间:2012-09-14 08:08:08

标签: asp.net razor

我是RAZOR的新手,我想在用户点击RadioButton时触发一个事件。

理想情况下,它应该在用户单击RadioButton后动态显示所选值。

问题:

  1. 如何获取所选值

  2. 如何在用户点击RadioButton时触发事件。

    @{
        Layout = "~/_SiteLayout.cshtml";
        Page.Title = "Contact";
     }
    
    <div>
      <table>
        <tr>
          <td>
             @Html.RadioButton("Gender", "Male", true) Male
          </td>
          <td>
             @Html.RadioButton("Gender", "Female", false) Female
          </td>
        </tr>
     </table>
          @Html.Label(Request["Gender"] == null ? "No Selection" : Request["Gender"])
    

2 个答案:

答案 0 :(得分:2)

使用Razor无法做到这一点,你可以做的就是像这样创建单选按钮并使用Jquery触发任何动作。

<input type="radio" name="sex" value="male" /> Male <br />
<input type="radio" name="sex" value="female" /> Female

您可以在页面上添加脚本(假设您可以使用jQuery),如:

<script type="text/javascript">
$(function () {
    $(':radio[name="sex"]').change(function () {
        $.ajax({
            url: 'sex',
            type: 'POST',
            data: { sex: $('radio[name="sex"]').val() },
            success: function (xhr_data) {
                alert(xhr_data.someValue);
            }
        });
    });
});

假设您在与生成视图的控制器相同的控制器中有操作方法

public class YourController : Controller
{
   public ActionResult sex(string sex)
   {
      // do something awesome
      return Json(new { someValue = "testing!" });
   }
}

答案 1 :(得分:1)

razor已经放弃了事件驱动模型,你可以使用表单,当你可以提交表单时,你可以在控制器中得到结果