在javascript中访问ViewData?

时间:2011-04-03 09:51:26

标签: asp.net-mvc-3

我想访问以下代码中的Java脚本中的视图数据

public virtual ActionResult Edit(MyModel _MyModel)
{
    //some Code

    if (true..)
    {
            ViewData["Messages"] = "Data Updated Sucessfully";
    }
        else
    {
        ViewData["Messages"] = "you cannot Updated data";
    }

    return View();
}

在javascript中

function SaveData() {
    $("#btnSave").click(function () {
        //          $('#divLoadImage').show();
        //            $('#divOverlay').show();
        //   debugger;
        $.ajax({
            type: "POST",
            url: "Admin/Edit/",
            data: "",
            complete: function () {
                alert(ViewData["Messages"]);
            }
        });
    });
}

它在警报中没有给我任何价值。

1 个答案:

答案 0 :(得分:4)

您需要使用例如JavaScriptSerializer类对其进行编码:

function SaveData() {
    $("#btnSave").click(function () {
        $.ajax({
            type: "POST",
            url: "Admin/Edit/",
            data: "",
            complete: function () {
                alert(@Html.Raw(new JavaScriptSerializer().Serialize(ViewData["Messages"])));
            }
        });

    });
}

或使用简单的引号,但要小心,因为如果邮件包含引号可能会破坏,所以我不建议你这样做:

alert('@ViewData["Messages"]');