【发布时间】:2016-10-14 19:43:02
【问题描述】:
我正在尝试将我的视图模型绑定到 Knockout,因为我需要执行一些客户端操作。由于' 字符,我遇到了问题。
我的模型中有一些SelectListItem 的对象,这些对象看起来像这样:
{
"Disabled": false,
"Selected": false,
"Text": "Côte d'Ivoire",
"Value": 59
}
注意Text 属性中的' 字符:"Côte d'Ivoire"。
这个角色是一切的问题,因为这就是我将视图模型转换为ko 视图模型的方式:
@{
var serializerSettings = new Newtonsoft.Json.JsonSerializerSettings();
serializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
var jsonData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model, serializerSettings));
}
@using(Html.BeginScripts())
{
@Scripts.Render("~/bundles/knockout")
<script type="text/javascript">
var vm = ko.mapping.fromJSON('@Html.Raw(jsonData)')
</script>
}
注意我是如何将@Html.Raw(jsonData) 包裹在' 中的。我想这就是问题所在,我只是不确定如何解决这个问题。
更新
这是返回此数据的控制器方法:
public ActionResult Solution()
{
using(var db = new DatabaseContext())
{
var viewModel = new DetailsViewModel();
viewModel.Countries = db.Country.ToList().Select(x => new SelectListItem{
Value = "" + x.CountryId,
Text = x.Name
});
return View(viewModel);
}
}
【问题讨论】:
标签: javascript c# mvvm knockout.js