为什么这个JQuery无效?

时间:2010-06-25 10:22:46

标签: c# jquery html html-helper visual-studio-2008-sp1

我一直试图弄清楚为什么这是无效的(根据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;
    }

Helper正在生成有效的Json(已确认),但是当我尝试向函数添加任何其他东西时,VS2008会抱怨所有类型的东西,无法正确对齐代码等等,当关闭括号时,一旦我发表评论,它就有效。但是,代码工作正常,即使VS2008抱怨它。 这只是VS2008与JQuery的废话还是我实际上做错了什么?

2 个答案:

答案 0 :(得分:3)

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

但最终; VS如何知道ToJson会返回一些明智的东西?它可以返回"(((((((",这将真正搞砸了javascript。这就是为什么它不开心。

答案 1 :(得分:2)

MRW,

你在这里得到了一个缺失的支架:

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

它应该是:

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

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