$ JQuery конфликтует с $ StringTemplate.Net в ASP.Net MVC - PullRequest
17 голосов
/ 06 октября 2008

Я изучаю ASP.NET MVC и хочу добавить jQuery, чтобы сделать сайт интерактивным. Я использовал StringTemplate, портированный на .Net, в качестве механизма шаблонов для генерации html и отправки JSON. Однако, когда я просматриваю страницу, я не мог ее видеть. После отладки я понял, что $ используется StringTemplate для доступа к свойству и т. Д., И jQuery использует его также для манипулирования DOM. Ну и дела, я смотрел на других шаблонизаторов, и большинство из них использует знак доллара: (.

Какой-нибудь альтернативный шаблонизатор для ASP.Net MVC? Я хотел сохранить jQuery, потому что MSFT объявил, что он будет использоваться в Visual Studio (2008?)

Заранее спасибо:)

Обновление

Пожалуйста, перейдите к ответ в Сравнение ASP.NET MVC View Engine вопрос для полного списка механизма шаблонов для ASP.NET MVC, и их плюсы и минусы

Обновление 2

В конце я просто помещу код JavaScript, включая JQuery, в отдельный файл сценария, поэтому я не буду беспокоиться о смешивании $ в файле шаблона.

Обновление 3

Изменено название, чтобы отразить то, что мне нужно решить. Ведь «Лучший X в Y» - очень субъективный вопрос.

Ответы [ 14 ]

0 голосов
/ 06 ноября 2012

Установлено, что усы - самый надежный, простой в использовании и легкий полнофункциональный шаблонизатор для проектов .Net (веб и бэкэнд)

Хорошо работает с .Net 3.5 (это означает, что для работы с моделями смешанного типа, такими как Razor, не требуется динамический тип и .Net 4.0).

Больше всего мне нравится способность вкладывать произвольные IDicts внутри и заставлять движок делать правильные вещи. Это делает обязательный для всех шаг перезарядки двигателей очень простым:

var child = new {
    nested = "nested value"
};
var parent = new {
    SomeValue = "asdfadsf"
    , down = child
    , number = 123
};

var template = @"This is {{#down}}{{nested}}{{/down}}. Yeah to the power of {{number}}";

string output = Nustache.Core.Render.StringToString(template,parent);
// output:
// "This is nested value. Yeah to the power of 123"

Самое замечательное в Mustache - тот же самый шаблон работает точно так же в чистом JavaScript или любом другом из 20 или около того поддерживаемых языков.

0 голосов
/ 11 мая 2011

Если я правильно понимаю StringTemplate версии 4, вы можете определить свой собственный escape-символ в конструкторе Template (или TemplateGroup).

0 голосов
/ 10 мая 2010

Вам может понадобиться .NET Template Engine . Если вы хотите использовать символ «$», просто используйте «$$». Смотрите код ниже:

{%carName = "Audi R8"/}

{%string str = "This is an $carName$"/}

$str$
$$str$$

вывод будет

This is an Audi R8
$str$
0 голосов
/ 02 ноября 2008

Вы можете попробовать jsRepeater .

...