我一直试图弄清楚为什么这是无效的(根据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的废话还是我实际上做错了什么?
答案 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周围添加单引号,如上所示。