常见问题是:如何调用Controller.Action并在标准html事件上发送一些参数(如onblur
或onclick
)。
我正在使用Asp.Net MVC3。
原始情况: 我的页面上有DropDownList,如下所示:
@Html.DropDownList("DropDownList", ViewBag.selectList as IEnumerable<SelectListItem>)
我不想使用@Html.DropDownListFor
因为这意味着我应该在我的模型中保存一些不太可能的其他信息。
我需要:调用相同控制器DropDownListSelectionChanged(int moduleId)
事件的SelectedIndexChanged
操作并将选定项值发送到此操作。
请帮助。
答案 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
}