0
我有一个反复使用的控件,所以我试图为它创建一个用户控件。我一直在关注以下article,但他的解释似乎没有什么东西。我写的静态类是这样的:如何使用html helper创建MVC用户控件
public static class SingleSelectionControl
{
public static MvcHtmlString SingleSelection(this HtmlHelper htmlHelper, string cssClass, string modelField) //case-field & caseName
{
StringBuilder builder = new StringBuilder();
builder.Append("<div class='wizard-field'>");
builder.Append("<textarea id='" + cssClass + "' class='wizard-textbox-field' ng-model='model." + modelField + "Value'></textarea>");
builder.Append("<textarea id='" + cssClass + "-page' class='wizard-hidden' ng-model='model." + modelField + "Page'></textarea>");
builder.Append("<ul class='wizard-horizontal-button-list'>");
builder.Append("<li>");
builder.Append("<input type='button' class='add button' onclick='getHighlightedText('#" + cssClass + "')' />");
builder.Append("<input type='button' class='search button' onclick='setPage($('#" + cssClass + "-page').val()); setSearchText('#" + cssClass + "')' />");
builder.Append("</li>");
builder.Append("</ul>");
builder.Append("</div>");
return MvcHtmlString.Create(builder.ToString());
}
}
而且我试图从我的观点称SingleSelection使用下面的代码:
<div class="formA" id="_FormA">
<div id="@Model.Order" style="display: none;">@Model.TemplateName</div>
@using (Html.BeginForm())
{
<fieldset>
<legend>Initial Filing</legend>
<div class="wizard-label">
<span>Case Name:</span>
</div>
@Html.SingleSelection("case-field", "caseName");
但是,如我所料,@ Html.SingleSelection无法识别。
This post是相似的,但也没有解释如何连接视图和静态方法。
如何“注册”此方法,以便我可以通过@Html从我的视图中调用它。谢谢!
添加到
web.config
文件,因此它的可用你是否包含'@ using'视图中的声明?或者更好的做法是,将命名空间添加到'web.config'文件 –对命名空间的使用声明是我不知道的缺失部分。我添加了它,除了一个语法错误,它完美的工作。请添加您的评论作为答案。 – BrianLegg
也看到http://stackoverflow.com/a/11897078/2562358 –