选择项目后如何在DropDownList中使用OnChange事件

时间:2012-07-17 08:24:59

标签: c# xml asp.net-mvc

我有一个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下的详细信息。

国家:英格兰

城市:伦敦

网站:等

然后是会员和关系清单。

感谢您帮助我

韦斯利

1 个答案:

答案 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);
}