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

发布于 2024-11-03 03:51:01 字数 1376 浏览 0 评论 0原文

我有一个用户数组,我想将其作为 javascript 数组传递到视图中。我通过 JavaScriptSerializer 执行此操作,但我得到的字符串中包含未转义的引号。

控制器操作

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

查看

 <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;

    }
}

这就是 Model.Users 的输出:

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

如何使用 JavaScriptSerializer 或任何其他方法转义引号?

I Have an Array of users that i want to pass into a view as a javascript array. I'm doing this via JavaScriptSerializer, but the string i get has unescaped quotes in it.

Controller Action

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

["DennisLeary","BobSaget","BillHicks"]

How do i escape the quotes with JavaScriptSerializer, or any other method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放我走吧 2024-11-10 03:51:01

使用 Html.Raw()

返回非 HTML 标记
编码。

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

Use Html.Raw()

Returns markup that is not HTML
encoded.

var tags = @Html.Raw(Model.Users);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文