如何将下拉列表选定值调用为@html.action 路由值。我在我的 MVC3 剃须刀中使用以下代码。我必须动态调用“eventid”作为下拉列表选择值。
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
如何将下拉列表选定值调用为@html.action 路由值。我在我的 MVC3 剃须刀中使用以下代码。我必须动态调用“eventid”作为下拉列表选择值。
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
您不能这样做,因为 Html.Action 助手在服务器上呈现,而下拉选择可能会在客户端上更改。一种可能性是使用 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
});`