2009-02-25 11 views
1

私のMVCビューページがあります。選択したインデックスが変更されたときにJQueryを使用してグリッドをフィルタリングします。投稿<Asp:DropDownList>アクションリンク付きの値(asp.net MVC JQuery)

ページの下部に私はアクションリンクを持っています。私はアクションリンクが指しているコントローラにこの値を掲示したいと思います。

問題は明らかにボックスの値が変わる可能性があることです。

アクションリンクを使用して動的に変更するデータを投稿するにはどうすればよいですか?

答えて

1

アクションリンクの代わりにフォームを使用すると思います。 jQueryは、クエリパラメータに対応するフォーム内のいくつかの隠しフィールドを更新します。あなたの "リンク"(ボタンでもよい)はフォームを提出するonclickハンドラを持っています。あなたがURLを気にしていれば、あなたがどこにいるのか分かります。コントローラーのアクションを正しいルートパラメーターで自分自身にリダイレクトさせるだけです。

また、選択が変更されたときに、ActionLinkでhrefを作成して置き換えることもできます。これには、ルートがどのように構築されているかを理解するコードをビューに維持する必要があります。

注:次の例は、ドロップダウンの周りを包み込んだフォームではうまく動作し、選択肢を変更して送信するだけですが、そのパターンは私が描いたものです。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#formLink').click(function() { 
      $(this).parent('form').submit(); 
      return false; 
     }); 
     $('#PageSizeMenu').change(function() { 
      $('#PageSize').val($(this).val()); 
     }) 
    }); 
</script> 

<%= Html.DropDownList("PageSizeMenu", ...) %> 
<% using (Html.BeginForm("List")) { %> 
    <a id="formLink" href="some-reasonable-link-for-non-javascript">Go</a> 
    <%= Html.Hidden("PageSize") %> 
<% } %>