【问题标题】:Why is this JQuery not valid?为什么这个 JQuery 无效?
【发布时间】:2010-06-25 10:22:46
【问题描述】:

我一直试图弄清楚为什么这是无效的(根据 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 的废话还是我真的做错了什么?

【问题讨论】:

  • 用户控制中是否有精简代码?您是否在其他文件中链接到 jQuery?

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


【解决方案1】:

设计者一般&lt;%= 出现在脚本中时会有点不高兴(当它出现在属性值中时它有时会变得粗暴)。如果输出正确,并且您对 html 的构建方式感到满意,那么我不会有压力。

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

【讨论】:

  • 好的,我明白了。我只是有点恼火,因为我对 JQuery 很陌生,我使用自动对齐来确认我已经完成了有效的代码,突然之间,它不再这样做了。所以这就是为什么。感谢您的快速回复!
【解决方案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 周围添加单引号。

【讨论】:

  • 你是对的 )}; 但不是引号。他想要一个对象字面量,而不是字符串。
  • 正如邓肯所说,我希望对象不是字符串。最后一个括号现在只是错字了。
  • 是的,非常感谢您的快速回复! :)
猜你喜欢
  • 2016-07-27
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2019-03-26
  • 1970-01-01
相关资源
最近更新 更多