我有一个要作为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输出为
["DennisLeary","BobSaget","BillHicks"]
如何使用JavaScriptSerializer或其他任何方法转义引号?
最佳答案
使用 Html.Raw()
var tags = @Html.Raw(Model.Users);
关于javascript - 在ASP.NET MVC3中使用JavaScriptSerializer转义报价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5763673/