3
Actually it is possible to write an Extension class to the HtmlHelper to do this but you have to implement many overrides so the quickest solution I found was to write a dictionary extension.
實際上可以將一個Extension類寫入HtmlHelper來執行此操作,但是您必須實現許多覆蓋,因此我發現最快的解決方案是編寫字典擴展。
You can use below class for this:
您可以在下面使用以下類:
public static class DictionaryExtensions
{
public static Dictionary WithAttrIf(this Dictionary dictionary,bool condition, string attrname, object value)
{
if (condition)
dictionary[attrname] = value;
return dictionary;
}
public static Dictionary WithAttr(this Dictionary dictionary, string attrname, object value)
{
dictionary[attrname] = value;
return dictionary;
}
}
To use it, import the class in your view and your view code looks like this:
要使用它,請在視圖中導入該類,您的視圖代碼如下所示:
@Html.TextBoxFor(m => m.FirstName, new Dictionary().WithAttr("class","input-large").WithAttrIf(!string.IsNullOrWhiteSpace(Model.FirstName),"readonly","yes"))
You can add as many attributes as you wish since the extension method adds the value to the dictionary and returns the dictionary itself
您可以添加任意數量的屬性,因為擴展方法將值添加到字典並返回字典本身