值未传递给控制器​​方法

时间:2017-12-13 15:07:17

标签: c# jquery ajax asp.net-mvc http-post

我有以下视图Board.cshtml,我希望根据MessagesBoard.cshtml事件呈现部分视图DropDownListFor

Boards.cshtml

<script>
    $(function () {
        debugger
        $("#selected_listBulletinBoardsMessages").change(function (e) {
            alert($(this).val());
            var val = $(this).val();
            $("#updateBulletMessagesView").load("UpdateBoardMessages/", { listBulletinBoardsMessages: val });
        });
    });
</script>
<div>
    @Html.DropDownListFor(model => model.listBulletinBoardsMessages, Model.listBulletinBoardsMessages.Select(b => new SelectListItem() { Value = b.Department, Text = b.Department }), "All Departments",
           new { @class = "form-control",
                 id = "selected_listBulletinBoardsMessages"
       })
</div>

<div id="updateBulletMessagesView">
    @Html.Partial("MessagesBoard")
</div>

Controller方法:UpdateBoardMessages没有从jQuery脚本发送的val的值。

public ActionResult UpdateBoardMessages(string val)
        {
            val = val; //NULL??
            ..
            return PartialView("MessagesBoard.cshtml");
        }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您实际上需要使用$("#updateBulletMessagesView").load('@Url.Action("UpdateBoardMessages","ControllerName")'+'?val='+val; 生成正确的网址而不是使用魔术字符串,然后您可以在javascript中通过字符串conctenation添加查询字符串参数:

each [Year]*10000 + [MonthNum]*100 + [DayNum]

希望这有帮助。