1

我一直在试图弄清楚为什么这是无效的(根据 VS2008)。

//Global variable
var sortFields;

$(document).ready(function() {
    sortFields = <%= CustomHtmlHelper.ToJson(ViewData["SortInfo"])%>;
    //Other Code here...
});

我的 HtmlHelper 代码

    public static string ToJson(object obj)
    {
        var serializer = new JavaScriptSerializer();
        var json = serializer.Serialize(obj);

        return json;
    }

助手正在生成有效的 Json(已确认),但是当我尝试向该函数添加任何其他内容时,VS2008 会抱怨各种东西,关闭括号时无法正确对齐代码等等,以及一旦我对此发表评论,它就会起作用。但是,代码运行良好,即使 VS2008 抱怨它。这只是 VS2008 对 JQuery 的废话还是我真的做错了什么?

4

2 回答 2

3

设计者在脚本中通常会有点不高兴<%=(有时在属性值中会变得很生气)。如果输出正确,并且您对 html 的构造方式感到满意,那么我不会强调。

不过,最终;VS 怎么知道这ToJson会返回一些合理的东西?它可能会返回"(((((((",这真的会搞砸 javascript。这就是它不快乐的原因。

于 2010-06-25T10:27:18.620 回答
2

先生,

你,这里有一个缺少的括号:

$(document).ready(function() {
    sortFields = <%= CustomHtmlHelper.ToJson(ViewData["SortInfo"])%>;
    //Other Code here...
};

它应该是:

$(document).ready(function() {
    sortFields = '<%= CustomHtmlHelper.ToJson(ViewData["SortInfo"])%>';
    //Other Code here...
**)};**

另外,返回 jsonresult 可能会更好?此外,如上所示,在 CustomHtmlHelper 周围添加单引号。

于 2010-06-25T10:28:43.143 回答