从控制器操作中,您将以相同的方式进行调用:
<%= Html.DropDownList(ddl, ViewData["items"] as SelectList, new { onchange = string.format("doSomething({0}); return false;", action) }) %>
一旦你这样做了,在你的页面上放置一个调用该方法的 Javascript 函数。但是,您如何称呼它取决于它是否是 AJAX 调用。也就是说,您是否想要页面往返。对于非 AJAX 调用:
function doSomething(action) {
window.location.href = action;
}
如果是 AJAX 调用:
function doSomething(action) {
$.load(action);
}
要将参数传递给操作,您只需确保要传递的所有数据元素都包含在<form>
标记中。例如,假设您想在下拉列表中包含名字和姓氏。在视图中,您将执行以下操作:
<%= using (Html.BeginForm())
{ %>
<table>
<tr>
<td>First Name:</td>
<td><%= Html.TextBox("FirstName") %></td>
</tr>
<tr>
<td>Last Name:</td>
<td><%= Html.TextBox("LastName") %></td>
</tr>
<tr>
<td>Assign to:</td>
<td><%= Html.DropDownList(ddl, ViewData["items"] as SelectList,
new { onchange = string.format("doSomething({0}); return false;", ViewData["action"]) }) %></td>
<tr>
</table>
<% } %>
在 Javascript 函数中:
function doSomething(action) {
var firstName = $('#FirstName').val();
var lastName = $('#LastName').val();
$.load(action, { first: firstName, last: lastName });
}