0

我正在开发一个具有剃刀语法的 MVC3 应用程序。我正在研究评论功能的部分课程。

我的代码是:

<script src="../../Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#AddCommentButton').click(function () {
            $.ajax({
                type: 'post',
                url: '/Comment/SaveComments',
                dataType: 'json',
                data:
                { 

                'comments': $('#Comment').val(), @ViewBag.EType, @ViewBag.EId
                 },

                   success: function (data) {

                    $("p.p12").append

                   $('.ShowComments').text('Hide Comments');

                }
            });
        });
    });
</script>

我试图在上面的 jQuery 中使用 ViewBag 从 View 向控制器发送参数,但它不起作用。我怎样才能做到这一点?

4

1 回答 1

2

试试这样:

<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#AddCommentButton').click(function () {
            $.ajax({
                type: 'post',
                url: '@Url.Action("SaveComments", "Comment")',
                data: { 
                    comments: $('#Comment').val(), 
                    etype: @Html.Raw(Json.Encode(ViewBag.EType)), 
                    eid: @Html.Raw(Json.Encode(ViewBag.EId))
                },
                success: function (data) {
                    $("p.p12").append(data);
                    $('.ShowComments').text('Hide Comments');
                }
            });
        });
    });
</script>

和你的控制器动作:

[HttpPost]
public ActionResult SaveComments(string comments, string etype, string eid)
{
    ...
}

或定义视图模型:

public class SaveCommentViewModel
{
    public string Comments { get; set; }
    public string EType { get; set; }
    public string EId { get; set; }
}

进而:

[HttpPost]
public ActionResult SaveComments(SaveCommentViewModel model)
{
    ...
}
于 2012-09-17T05:23:46.673 回答