MVC View ページに があります。選択したインデックスが変更されたときに、JQuery を使用してグリッドをフィルター処理します。
ページの下部に、アクション リンクがあります。アクションリンクが指しているコントローラーにこの値を投稿したいと思います。
問題は、明らかにボックスの値が変わる可能性があることです。
アクションリンクを使用して動的に変化するデータを投稿するにはどうすればよいですか?
MVC View ページに があります。選択したインデックスが変更されたときに、JQuery を使用してグリッドをフィルター処理します。
ページの下部に、アクション リンクがあります。アクションリンクが指しているコントローラーにこの値を投稿したいと思います。
問題は、明らかにボックスの値が変わる可能性があることです。
アクションリンクを使用して動的に変化するデータを投稿するにはどうすればよいですか?
アクションリンクの代わりにフォームを使用すると思います。jQuery は、クエリ パラメータに対応するフォーム内のいくつかの非表示フィールドを更新します。その場合、「リンク」(ボタンの場合もあります) には、フォームを送信する onclick ハンドラーがあります。URLが気になる場合は、コントローラーアクションを正しいルートパラメーターでそれ自体にリダイレクトするだけです。
または、select が変更されたときに、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") %>
<% } %>