从doubleqoute文本创建javascript对象

时间:2014-04-07 09:44:02

标签: jquery asp.net-mvc json

我有一个混乱的问题,我一直坚持。 我尝试在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;

这也因为非法标志而出错!?

请帮助:(

1 个答案:

答案 0 :(得分:0)

好的,我不能让它与json一起运行。 我现在正在做的是以下内容。

行动方法:

var serializer = new JavaScriptSerializer();
ViewBag.JSModel = serializer.Serialize(modelObject);

的JScript:

$(function () {
    var mvcModel = @(Html.Raw(ViewBag.JSModel));

这对我有用。如果有人有更好的解决方案,我很乐意听到。

问候斯蒂芬