2011-04-23 28 views
8

我有一個我希望作爲javascript數組傳遞給視圖的用戶數組。我通過JavaScriptSerializer來完成這項工作,但我得到的字符串中有未轉義的引號。在ASP.NET MVC3中使用JavaScriptSerializer轉義引號

控制器動作

公共虛擬的ActionResult創建(INT ID){

 var viewModel = new AttendeeViewModel(); 

     var data = viewModel.GetMembershipUserList() ; 

     viewModel.MeetingID = id; 

     viewModel.Users = new JavaScriptSerializer().Serialize(data.ToArray()); 

     return View(viewModel); 
    } 

查看

<script type="text/javascript"> 

    var tags = @Model.Users 

    $(document).ready(function() { $("#mytags").tagit({ availableTags:tags}); }); 
</script> 

視圖模型

public class AttendeeViewModel 
{ 

    public int AttendeeId { get; set; } 
    public string Name { get; set; } 
    public int MeetingID { get; set; } 
    public string Users { get; set; } 

    public List<string> GetMembershipUserList() 
    { 
     List<string> userNames = new List<string>(); 
     foreach (MembershipUser user in Membership.GetAllUsers()) 
     { 
      userNames.Add(user.UserName); 
     } 

     return userNames; 

    } 
} 

釷是什麼Model.Users輸出爲

[&quot;DennisLeary&quot;,&quot;BobSaget&quot;,&quot;BillHicks&quot;] 

如何使用JavaScriptSerializer或任何其他方法轉義引號?

回答

21

使用Html.Raw()

返回的標記,是不是編碼的HTML 。

var tags = @Html.Raw(Model.Users); 
+0

很多很多非常感謝。 – MrBliz 2011-04-23 10:52:46

+0

謝謝!我不斷看到奇怪的解決方案,人們會添加一個.replace(...)來解決這個問題。感謝您的合適! – 2013-10-21 22:36:41