0

私はMVC Webサイトを持っています。ページには、ドロップダウン リスト、詳細情報ビュー、およびいくつかのリスト ビューがあります。

データは、次のようなインポートされた 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>

インデックスページ

<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 を再利用するにはどうすればよいですか?

ドロップダウンリストの項目が変わったときにビューデータを変更したい。

Web ページで、DropDownList のすぐ下に詳細情報が表示されることを願っています。

国: イギリス

都市: ロンドン

ウェブサイト: など

次に、メンバーと関係のリスト。

助けてくれてありがとう

ウェズリー

4

1 に答える 1

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);
}
于 2012-07-19T15:35:26.680 に答える