在ASP.NET-MVC2项目中,我构建了一些驻留在Views \ Shared \ EditorTemplates和DisplayTemplates文件夹中的用户控件。
我想把这个模板拉成一个类库,为了让它们可以重用,我该怎么做!
我不知道这是否有所帮助,但更多细节;一些模板以类型(字符串,Int32等)命名,一些模板名称类似于RemoteCombo,并在UIHint中使用模板提示指定。
答案 0 :(得分:1)
不幸的是,您不能只创建一个库并将ascx文件放在那里。您必须创建模板的“仅代码”版本,以呈现适当的html。
Microsoft必须这样做才能在System.Web.Mvc.dll
中提供默认模板有关模板的更多信息可以在 this 博客上找到 - 这是关于MVC模板的一系列精彩帖子。 (看看'内置显示模板'部分)
这是Decimals的默认编辑模板(来自System.Web.Mvc.dll)
internal static string DecimalTemplate(HtmlHelper html)
{
if (html.ViewContext.ViewData.TemplateInfo.FormattedModelValue == html.ViewContext.ViewData.ModelMetadata.Model)
{
html.ViewContext.ViewData.TemplateInfo.FormattedModelValue = string.Format(CultureInfo.CurrentCulture, "{0:0.00}", new object[] { html.ViewContext.ViewData.ModelMetadata.Model });
}
return StringTemplate(html);
}
所有默认模板都可以在System.Web.Mvc.Html
命名空间中的Reflector中看到。