9

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またはその他の方法で引用符をエスケープするにはどうすればよいですか?

4

1 に答える 1

25

使用するHtml.Raw()

HTML エンコードされていないマークアップを返します。

var tags = @Html.Raw(Model.Users);
于 2011-04-23T10:44:28.410 に答える