MVC c#应用程序,Json数据模型

本文关键字:Json 数据模型 应用程序 MVC | 更新日期: 2023-09-27 18:17:52

这可能看起来很奇怪,但我想让我的模型包含Json数据,然后我可以使用javascript来呈现html的内容。我的代码如下-

My Controller -

    public ActionResult Index()
    {
        Object myObject = FillMyObjectWithData();
        string json = new JavaScriptSerializer().Serialize(myObject);
        return View(json);
    }

My View -

    @model  string  /*Json data will be in the model*/
    <div>
        //standard html in here
    </div>
    <script>
        $(document).ready(function() {
            doCoolStuff(@Model);
        });          
    </script>

我得到错误- "路径中的非法字符。 "

实现这一目标的正确方法是什么?

MVC c#应用程序,Json数据模型

问题在return View(json);

你得到了错误的函数重载View(string),这是通过名称获得视图的重载。试一试:

return View((object)json);

你还需要没有HTML编码的原始JSON:

 doCoolStuff(@Html.Raw(@Model));

尝试:

@model  string  /*Json data will be in the model*/
<div>
    //standard html in here
</div>
<script>
    $(document).ready(function() {
        var temp = @model;
        doCoolStuff(temp);
    });          
</script>

你尝试这种方式的动机是什么?如果你真的想返回json,你可能会更好的服务,使一个ajax请求后,视图/页面加载和使用javascript/jquery渲染你的UI。这将是KnockoutJS的一个很好的候选。