Jaq*_*har 23 asp.net-mvc drop-down-menu asp-net-mvc-1
我在MVC视图中有一个下拉列表.在选择更改下拉列表时,我想在控制器中调用特定的操作方法.
我在观点上所做的是:
<%=Html.DropDownList("ddl", ViewData["AvailableList"] as SelectList,
new { onchange = "this.form.action='MyMethod';this.form.submit();" })%>
Run Code Online (Sandbox Code Playgroud)
一切都在编译.但是当我更改下拉选项时会抛出运行时异常,如
"Microsift JScript运行时错误:对象不支持属性或方法"
如何重定向到列表选择更改事件的特定操作?
如何将参数传递给此操作方法?
Dar*_*rov 23
你真的需要提交表格吗?你可以重定向:
onchange = "redirect(this.value)"
Run Code Online (Sandbox Code Playgroud)
redirect自定义函数在哪里:
function redirect(dropDownValue) {
window.location.href = '/myController/myAction/' + dropDownValue;
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*cob 13
你的方法应该有效.您遇到的问题是您this在onchange活动中的使用无效.尝试使用以下内容替换您的this.form引用:
<%= Html.DropDownList(
"ddl", ViewData["AvailableList"] as SelectList,
new { onchange = @"
var form = document.forms[0];
form.action='MyMethod';
form.submit();"
} ) %>
Run Code Online (Sandbox Code Playgroud)
这是一个jQuery的事情.给它一个课程并连接它.
Html.DropDownList("ddl", AvailableList, new { @class = "_select_change" })
Run Code Online (Sandbox Code Playgroud)
粗略的脚本可能如下所示:
$('._select_change').change(function() { $.post(ctrlUrl); })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78478 次 |
| 最近记录: |