ドロップダウンリストで選択した値を@html.actionルート値として呼び出す方法。私はMVC3かみそりで次のコードを使用しています。ドロップダウンリストの選択値として「eventid」を動的に呼び出す必要があります。
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
ドロップダウンリストで選択した値を@html.actionルート値として呼び出す方法。私はMVC3かみそりで次のコードを使用しています。ドロップダウンリストの選択値として「eventid」を動的に呼び出す必要があります。
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
Html.Actionヘルパーはサーバーでレンダリングしますが、ドロップダウンの選択はクライアントで変更される可能性があるため、これを行うことはできません。1つの可能性は、AJAX呼び出しを使用することです。したがって、基本的に.change()
は、ドロップダウンのイベントをサブスクライブし、AJAX呼び出しをコントローラーアクションに送信して、部分的なビューを返し、DOMを更新することができます。
これをコンテナに入れることから始めます。
<div id="container">
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
</div>
その後:
<script type="text/javascript">
$(function() {
$('#id-of-your-dropdown').change(function() {
var eventId = $(this).val();
$.ajax({
url: '@Url.Action("FirmPassForum", "Conference")',
type: 'GET',
data: { eventId: eventId },
cache: false,
success: function(result) {
$('#container').html(result);
}
});
});
});
</script>
これを機能させるには、FirmPassForum
アクションを次の属性で装飾しないでください。[ChildActionOnly]
public ActionResult FirmPassForum(int eventId)
{
MyViewModel model = ...
return PartialView(model);
}
これも使えます
`//var url = '@Url.Action("ActionName", "Controller")';
$.post("/Controller/ActionName?para1=" + data, function (result) {
$("#" + data).html(result);
............. Your code
});`