我有一个在Web应用程序中使用的自定义控件,我想使用此自定义控件的逻辑为MVC助手创建html帮助器
这是我要转换的Web应用程序的代码:
[ToolboxData("<{0}:CustDropDownList runat=server></{0}:CustDropDownList>")]
public class CustDropDownList : System.Web.UI.WebControls.DropDownList
{
protected override void Render(HtmlTextWriter writer)
{
var strDivAttributes = this.Enabled ? "select-box" : "select-box disabled";
writer.Write("<div id=\"{0}Div\" class=\"{1}\">", this.ClientID, strDivAttributes);
base.Render(writer);
writer.Write("</div>");
}
}
答案 0 :(得分:2)
您可以将扩展方法添加到HtmlHelper类中,如下所示:
public static MvcHtmlString CustDropDownList(this HtmlHelper htmlHelper)
{
// ... your custom logic goes here
return new MvcHtmlString.Create("<div>some HTML...</div>");
}
然后您可以从类似的视图中调用它:
@Html.CustDropDownList()
EDIT 如果你想将它用于模型属性,你需要这样的东西:
public static MvcHtmlString CustDropDownListFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression, object htmlAttributes)
{
// ... your custom logic goes here
return new MvcHtmlString.Create("<div>some HTML...</div>");
}
然后可以这样使用:
@Html.CustDropDownListFor(m => m.SomeProperty)