如何在Asp.Net MVC中对标准html事件调用Controller Action?

时间:2011-08-24 14:56:29

标签: asp.net asp.net-mvc-3

常见问题是:如何调用Controller.Action并在标准html事件上发送一些参数(如onbluronclick)。

我正在使用Asp.Net MVC3。

原始情况: 我的页面上有DropDownList,如下所示:

@Html.DropDownList("DropDownList", ViewBag.selectList as IEnumerable<SelectListItem>)

我不想使用@Html.DropDownListFor因为这意味着我应该在我的模型中保存一些不太可能的其他信息。

我需要:调用相同控制器DropDownListSelectionChanged(int moduleId)事件的SelectedIndexChanged操作并将选定项值发送到此操作。

请帮助。

1 个答案:

答案 0 :(得分:3)

这很简单。您可以使用MVC中的内置Ajax.BeginForm,也可以使用jQuery发送请求。我将向您展示jQuery示例(仅仅因为jQuery使得ajax变得非常容易并且编写起来很容易):

 $('#myDropDownIdAttribute').change(function()
 {
     $.ajax({
        url: 'Some/ActionName', // SomeController, ActionName
        data: { selectedValue: $(this).val() },
        success: function()
        {
           // Success Callback
        }
     });
 });

然后你的行动方法如下:

public ActionResult ActionName(string selectedValue)
{
    // Do Stuff
}