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

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

我们需要打开验证属性,但在这方面没有提供 HtmlHelper。

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

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

有一个问题:为了创建输入助手,我们需要使用 InputHelper() 方法,不幸的是它是私有(private)的。

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

所以现在我们需要在我们的案例中复制这段代码,以提供使用模板创建、验证属性......的功能。

您认为我们的做法对吗?

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

附言找到了一些实现,但它们并不是我想要的: http://blog.isilverlabs.com/2011/01/mvc-file-input-helper/

最佳答案

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

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

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

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

关于c# - 创建输入 HtmlHelpers(例如 : input type=file),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445536/

相关文章:

c# - 将 curl 与 Phalanger 结合使用

c# - ASP.NET MVC : Hidden field value does not get rendered using HtmlHelper. 隐藏

templates - 使用 EditorFor<> 呈现下拉列表

c# - ASP.NET Membership 获取登录用户

c# - C#中的非阻塞文件复制

c# - 在表达式树中获取 ParameterExpression 的运行时值

javascript - 可以从 Javascript 调用 MVC @helper 吗?

security - 如何使用禁用 cookie 和 ASP.NET 的浏览器处理 Antiforgerytoken

c# - 每个 session 存储大量数据 ASP.NET MVC

jquery - ASP.NET MVC3 Razor 与 Html.Helpers 和 JQuery 模板的串联