Привязки двигателя Spark View с атрибутом класса HTML - PullRequest
2 голосов
/ 11 ноября 2010

Я использую функцию Bindings с механизмом отображения искры, чтобы заменить довольно много вызовов моего вспомогательного метода Html.

Одна проблема у меня заключается в том, что я хочу определить класс css для передачи в параметр анонимного словаря вспомогательных методов, что я обычно делал бы так:

${Html.EditorFor(x=>x.Username, new{@class = "css-class"})}

Замена этого искрой Привязка выглядит следующим образом:

Переплет:

<element name="Editor">Html.EditorFor(x => x.@For, new {"@*"}) </element>

Просмотр элемента:

<Editor For="Password" class="css-class" />

Я получаю сообщение об ошибке «Пространство имен не может напрямую содержать элементы, такие как поля или метод», которое является допустимым, поскольку оно разрешается в

Output.Write(Html.EditorFor(x => x.Password, new {class="big"}) );

Проблема, очевидно, в том, что мне нужно использовать @class вместо класса.

Однако я не могу указать @class в атрибуте html следующим образом

<Editor For="Password" @class="css-class" />

Потому что искра игнорирует это.

Я также не могу указать это так:

<element name="Editor">Html.EditorFor(x => x.@For, new {@"@*"}) </element>

Потому что тогда каждому переданному html-атрибуту будет предшествовать символ @.

Итак, мой вопрос, как я могу передать атрибут HTML class в привязку spark при его использовании для инициализации параметра словаря, чтобы он не выдавал ошибку компилятора?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Вы правы в своих наблюдениях. Я считаю, что правильный синтаксис в вашей привязке будет примерно таким:

<element name="Editor">Html.EditorFor(x => x.@For, new Dictionary[[string,object]]{{"@*"}}) </element>

вместо

<element name="Editor">Html.EditorFor(x => x.@For, new {"@*"}) </element>

Таким образом, любые атрибуты, которые вы прикрепляете к вашему тегу в представлении, о которых специально не заботятся по имени, будут передаваться как атрибуты пары имя-значение в отображаемом выводе.

Надеюсь, я правильно понял синтаксис, это работает для вас?

Всего наилучшего, Rob

1 голос
/ 03 января 2011

Извините, что угнали этот вопрос.Но для тех, кто начинает с привязок, если вы используете стабильный Spark 1.1.0, я думаю, что есть пара ошибок, связанных с привязками с # и child :: *.Исправление заключается в том, чтобы использовать разработку spark build.

Если это не так, надеюсь, Роберт меня поправит.Но если это так, то, возможно, это позволит новичкам (таким как я) избежать некоторой первоначальной путаницы.

...