2011-04-03 41 views
0

我想访问下面的代码JavaScript中访问ViewData?

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"]); 
      } 
     }); 
    }); 
} 

它给我的警告没有价值观点的数据在Java脚本..

+0

我不明白你的要求,你也可以尝试格式化你的代码更好? – Philip 2011-04-03 10:21:22

回答

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"]');