use*_*324 3 asp.net-mvc html.actionlink asp.net-mvc-3
如何将dropdownlist选择的值称为@html.action路由值.我在我的MVC3剃须刀中使用以下代码.我必须动态调用'eventid'作为dropdownlist选择值.
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
Run Code Online (Sandbox Code Playgroud)
你不能这样做,因为Html.Action助手在服务器上呈现,而下拉选择可能在客户端上改变.一种可能性是使用AJAX调用.因此,基本上您可以订阅.change()下拉列表的事件并向某些控制器操作发送AJAX调用,该操作将返回部分视图并更新DOM.
首先将其放入容器中:
<div id="container">
@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })
</div>
Run Code Online (Sandbox Code Playgroud)
然后:
<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>
Run Code Online (Sandbox Code Playgroud)
Fr这个工作你的FirmPassForum动作不应该用[ChildActionOnly]属性装饰:
public ActionResult FirmPassForum(int eventId)
{
MyViewModel model = ...
return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3828 次 |
| 最近记录: |