我有一个MVC网站。在页面中有一个下拉列表,一个detailinfo-view和几个列表视图。
数据来自导入的XML文件,例如:
<?xml version="1.0" encoding="utf-8" ?>
<Items>
<Item ID="1" Name="MVC" Country="Engeland" City="London"
Website="http://forums.asp.net" Genre="New" />
....
</Items>
Index.page
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
function OnChange(text) {
...
}
</script>
<form id="form1" runat="server">
<br />
<label>Select Name</label>
<br />
<%= Html.DropDownListFor(a => a.SelectedItem,
new SelectList(Model.Artists, "Value", "Text"),
new { onchange = "OnChange(this.Value);" })%>
<br />
<br />
<%= Html.Action("DetailInfo") %><br />
<br />
<%= Html.Action("MemberList") %> <br />
<br />
<%= Html.Action("RelationsList") %><br />
<br />
</form>
</asp:Content>
我的问题是:如何通过选择DropDownList中的项目,在OnChange事件后重用Html.Actions?
我想在下拉列表的项目发生变化时更改视图数据。
我希望在网页上看到DropDownList下的详细信息。
国家:英格兰
城市:伦敦
网站:等
然后是会员和关系清单。
感谢您帮助我
韦斯利
答案 0 :(得分:0)
所以你的意思是我在我的控制器中放置一个onchange事件
<script type="text/javascript">
$(document).ready(function() {
var AID = 810000;
function OnChange(action, value) {
$.load( action, {AID: value});
}
});
</script>
在Index.aspx中,我写道:
<%using (Ajax.BeginForm("OnChange", "MainController",
new AjaxOptions { HttpMethod = "Post" }))
{%>
<%= Html.DropDownListFor(a => a.SelectedID,
new SelectList(Model.Artiesten, "Value", "Text"),
new
{
onchange = @"
var form = document.forms[0];
form.action='OnChange(../Controllers/MainController/OnChange, Value)' ;
form.submit();"
})%>
<%} %> <br />
...并且在MainController中有一个方法
[HttpPost]
protected void OnChange(int? AID)
{
int iID = AID ?? 810000;
DetailInfo (AID);
MemberList(AID);
RelationsList(AID);
}