在我的ASP.NET MVC视图中,我有一个下拉列表,我想获取有关选择的详细信息并异步更新一个分区。我的ASPX如下所示:
<% using (Html.BeginForm("Index", "Portal", FormMethod.Post, new { id = "TheForm" }))
{%>
<h2>Index</h2>
<% using (Ajax.BeginForm("Details", new AjaxOptions { UpdateTargetId = "mpkResults" }))
{ %>
<%=Html.DropDownList("Docs", (IEnumerable<SelectListItem>)ViewData["Docs"],
new { onchange = "document.getElementById('TheForm').submit();" })%>
<p><input type="submit" value="Details" /></p>
<% } %>
<div id="mpkResults" style="margin:10px 0px 0px 0px;"></div> ...
OnChange事件在下拉列表选择时正确触发,但它不会触发我的代码中的细节方法,而是命中我的索引方法。为什么details方法没有在onchange事件上受到影响?我在控制器中的details()方法是:
public ActionResult Details()
{
... < It never gets here, just goes to the index() method
}
现在有点令人沮丧,因为我确定这是一个简单的错误,但不确定它可能是什么。我查看了页面的来源,确信表单看起来应该路由到详细信息操作:
<form action="/Portal/Details" method="post" ...
任何帮助都将不胜感激。