Можно использовать HTMLHelper не только для значения атрибута, но вместо этого для имени атрибута?
Я хочу генерировать в зависимости от того, что я передаю конкретный атрибут с его значением. Вот как я хочу использовать помощника:
<sometag @PossibleHelper(parameter)/>
После того, как возможный помощник сделает свое дело, это может быть результатом:
<sometag attributeName="attributeValue"/>
Как я могу выразить это в помощнике?
@helper PossibleHelper(someType){
if(condition){
attributeName="attributeValue" //this is wrong
}
}
1 ответ
Решение
Когда вы в помощнике, это просто обычный синтаксис бритвы.
@helper PossibleHelper(SomeType something) {
if (condition) {
<span attributeName="attributeValue">blah</span>
}
}
Вы можете установить атрибут, как это.
@helper PossibleHelper(int something) {
var attrValue = string.Empty;
if (true) {
attrValue = "attributeValue";
}
@(string.Format("attribute={0}", attrValue))
}
Использование:
<sometag @PossibleHelper(parameter)/>
К вашему сведению, вы также можете сделать метод расширения для HtmlHelper
что может быть лучше, если код разделен между представлениями или имеется приличное количество логики.
public static class HtmlHelperExtensions
{
public static MvcHtmlString SomeExtension(this HtmlHelper htmlHelper)
{
// ...
}
}