@{
var attributes = new Dictionary<string, object>
{
{ "id", "blah" }
};
if (<condition>)
{
attributes["disabled"] = "disabled";
}
}
@Html.TextBoxFor(m => model.value1, attributes)
Очевидно, что это ужасно ужасно, и вы никогда не должны даже думать о том, чтобы так загрязнять свою точку зрения.Я бы просто написал настраиваемый многократно используемый помощник HTML:
public static class HtmlExtensions
{
public static IHtmlString MyTextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> ex,
object htmlAttributes,
bool disabled
)
{
var attributes = new RouteValueDictionary(htmlAttributes);
if (disabled)
{
attributes["disabled"] = "disabled";
}
return htmlHelper.TextBoxFor(ex, attributes);
}
}
, который вы могли бы использовать в представлении так же просто, как:
@Html.MyTextBoxFor(m => model.value1, new { id = "blah" }, <condition>)