将dropdownlist选择的值调用为@html.action路由值

时间:2013-03-19 06:38:18

标签: asp.net-mvc asp.net-mvc-3 html.actionlink

如何将dropdownlist选择的值调用为@html.action路由值。 我在我的MVC3剃须刀中使用以下代码。我必须动态调用'eventid'作为下拉列表选择值。

@Html.Action("FirmPassForum", "Conference", new { eventId = 69 })

2 个答案:

答案 0 :(得分:7)

你不能这样做,因为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属性装饰 <{1}},请执行此操作:

[ChildActionOnly]

答案 1 :(得分:0)

您也可以使用

`//var url = '@Url.Action("ActionName", "Controller")';

$.post("/Controller/ActionName?para1=" + data, function (result) {
    $("#" + data).html(result);
    ............. Your code
});`