我有一个混乱的问题,我一直坚持。 我尝试在JavaScript中使用我的mvc模型作为对象(以后用于敲除绑定)。
我在Controller中做的是这个(对象简化了以显示我的问题):
public ActionResult ProjectServiceOverview()
{
var result = new
{
Text = "Hello ""Test"" test.."
}
return View(result);
}
这在客户端代码(又名java脚本)中:
$(function () {
var jsonModel = '@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(this.Model))';
var mvcModel = JSON.parse(jsonModel);
[...]
我的问题是在运行时服务器端生成的json(var jsonModel)看起来像这样,因为双重引用而无效。
{
"Reason": "Hello "Test" test..."
}
我现在试图找到一个解决方案,让它无需进行令人讨厌的替换("使用\")操作。有更聪明的方法吗?在我的工作代码中,对象来自实体框架映射的数据库。
更新1
好的,我现在发现了' Html.Raw'打电话也删除了\"在文本节点内。 我想我可以这样做。
现在我正在做一个简单的测试,如:
$(function () {
var json = '{ "Reason": "Hello \"Test\" test..."}';
var mvcModel = JSON.parse(json);
debugger;
这也因为非法标志而出错!?
请帮助:(
答案 0 :(得分:0)
好的,我不能让它与json一起运行。 我现在正在做的是以下内容。
行动方法:
var serializer = new JavaScriptSerializer();
ViewBag.JSModel = serializer.Serialize(modelObject);
的JScript:
$(function () {
var mvcModel = @(Html.Raw(ViewBag.JSModel));
这对我有用。如果有人有更好的解决方案,我很乐意听到。
问候斯蒂芬