简体   繁体   English

使用ASP.NET MVC3中的JavaScriptSerializer转义引号

[英]Escaping quotes with JavaScriptSerializer in ASP.NET MVC3

I Have an Array of users that i want to pass into a view as a javascript array. 我有一个用户数组,我想作为一个javascript数组传递给一个视图。 I'm doing this via JavaScriptSerializer, but the string i get has unescaped quotes in it. 我是通过JavaScriptSerializer做的,但我得到的字符串中没有未转义的引号。

Controller Action 控制器动作

public virtual ActionResult Create(int id) { public virtual ActionResult Create(int id){

        var viewModel = new AttendeeViewModel();

        var data = viewModel.GetMembershipUserList() ;

        viewModel.MeetingID = id;

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

        return View(viewModel);
    } 

View 视图

 <script type="text/javascript">

   var tags = @Model.Users

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

ViewModel 视图模型

 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;

    }
}

This is what Model.Users is output as 这就是Model.Users输出的原因

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

How do i escape the quotes with JavaScriptSerializer, or any other method? 如何使用JavaScriptSerializer或任何其他方法转义引号?

Use Html.Raw() 使用Html.Raw()

Returns markup that is not HTML encoded. 返回非HTML编码的标记。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM