创建输入HtmlHelpers(例如:input type = file)

时间:2013-10-18 08:58:18

标签: c# asp.net-mvc-4 html-helper htmlextensions

我们需要验证属性,并且在这方面没有提供HtmlHelper。

所以我们开始开发一个新助手。

为了了解具体方法,我们使用JetBrains dotPeek查看了MS代码,并在System.Web.Mvc(4.0)的InputExtensions.cs中找到了所需的一切。

存在一个问题:对于创建输入助手,我们需要使用不幸的私有的InputHelper()方法。

为什么是私人?这应该是输入助手的一个很好的扩展点。

所以现在我们需要在我们的案例中复制这个代码,以提供创建with template ing,validation attributes,....的功能。

你认为我们所做的是正确的吗?

文档中是否有一个页面说明了如何进行此类扩展方法?

P.S。发现了一些实现,但它们并不是我想要的: http://blog.isilverlabs.com/2011/01/mvc-file-input-helper/

1 个答案:

答案 0 :(得分:1)

自定义字段模板可能是您正在寻找的。它们会允许您覆盖调用@Html.EditorFor()@Html.DisplayFor()时生成的html。

使用UIHint属性标记视图模型上的属性,并提供自定义模板名称。

HtmlHelper扩展方法会自动在DisplayTemplatesEditorTemplates文件夹中查找匹配的模板。

这是一个类似的StackOverflow问题: How to create custom editor/display templates in ASP.NET MVC 3?