2010-06-25 4 views
1

Я пытался выяснить, почему это неверно (согласно VS2008).Почему этот JQuery недействителен?

//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, или я на самом деле что-то не так?

+0

Тонкий код в пользовательском контроле? Вы ссылаетесь на jQuery в другом файле? – Thea

+0

Это файл html. – MrW

ответ

3

Дизайнер обычно будет немного расстроен, когда <%= находится в скрипте (и иногда он становится реже, когда он находится в значениях атрибута). Если результат правильный, и вы довольны тем, как построен html, тогда я бы не стал подчеркивать.

В конечном счете, однако; как VS знает, что ToJson собирается вернуть что-то разумное? Он может вернуть "(((((((", который будет действительно завинтить javascript. Вот почему он недоволен.

+0

Хорошо, я вижу. Я просто немного раздражен этим, потому что я довольно новичок в JQuery, и я использую автоматическое выравнивание, чтобы подтвердить, что я сделал правильный код, и вдруг это больше не работает. Вот почему. Спасибо за быстрый ответ! – MrW

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, как показано выше.

+0

Вы правы в **)}; **, но не в кавычках. Ему нужен объект буквальный, а не строка. –

+0

Как Duncan sais, я хочу, чтобы объект не был строкой. Последняя скобка теперь была опечатана. – MrW

+0

не беспокойтесь, надеюсь, что у вас есть это отсортировано на данный момент .. –