我刚刚开始使用MVC,所以这应该是一个容易回答的问题。 我在ASP.Net上使用MVC 2。 我有一个下拉列表,当更改时也会导致网格也发生变化。 我找到了一种方法来捕获更改选择事件并使用下面的代码刷新整个表单。 $('#TheForm')。submit();命令导致Controller的Index方法运行,并像以前一样重置所有内容。 我当然希望这个方法能够获取下拉列表的新值,相应地提取并显示View中的新数据。 我应该怎么做,或者我应该在客户端做更多的事情呢?
$(function(){ $(“#StatusId”)。change(function(){ $( '#TheForm')提交()。 }); });
<p>
<% using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "TheForm" })){%>
<%: Html.DropDownList("StatusId", (SelectList) ViewData["Status"]) %>
<%}%>
</p>
<p>
<% if (Request.IsAuthenticated) { %>
<%: Html.ActionLink("Add new item", "Add") %>
<% } %>
</p>
<table>
<tr>
<th>
Title
</th>
<th>
Date
</th>
<th>
Status
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.ActionLink(item.Title, "Details", new { id = item.ItemCode }) %>
</td>
<td>
<%: String.Format("{0:g}", item.DateCreated) %>
</td>
<td>
<%: item.Status %>
</td>
</tr>
<% } %>
</table>
<p>
<%: Html.Label("Page: ") %>
<% for (int i = 1; i < Convert.ToInt32(ViewData["NumberOfPages"]); i++)
{ %>
<%: Html.ActionLink(i.ToString(), "Index", new { page = i })%>
<% } %>
</p>
答案 0 :(得分:1)
Index操作需要一个参数StatusId。
必须按StatusId过滤项目列表。如果这不起作用,请发布操作代码。