我有一个要作为javascript数组传入 View 的用户数组。我正在通过JavaScriptSerializer进行此操作,但是我得到的字符串中有未转义的引号。

Controller Action

公共(public)虚拟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>

View 模型
 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或其他任何方法转义引号?

最佳答案

使用 Html.Raw()


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

关于javascript - 在ASP.NET MVC3中使用JavaScriptSerializer转义报价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5763673/

10-11 01:28