フォームがロードされたときに値を持つすべてのフィールドを無効にしたい。 この例のようにオプションの無効な属性を設定する
<td>@Html.TextBoxFor(m => m.PracticeName, new { style = "width:100%", disabled = Model.PracticeName == String.Empty ? "Something Here" : "disabled" })</td>
このようなインラインで記述したいと思います。私はif-elseを使用してコードを大きくしたくありません。 javascript/jqueryの使用も歓迎しません。
私はfalse/trueを書こうとしましたが、それはおそらくクロスブラウザではありません2.Mvcは "True"や "False"のような文字列に解析しました。 どうすればいいですか?
P.S.
public static class HtmlExtensions
{
public static IHtmlString TextBoxFor<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.TextBoxFor(
m => m.PracticeName,
new { style = "width:100%" },
Model.PracticeName != String.Empty
)
私は、ASP.NET MVC 3 :)
ありがとう、私は2番目の拡張メソッドを使用しました。 –