在哪里可以找到默认的 Object.cshtml 编辑器模板?
我需要修改脚手架的默认编辑器模板,但我还没有找到 Object.cshtml 模板,在哪里可以找到默认的 razor Object.cshtml 编辑器模板?
I need to modify the default editor template for scaffolding but I havent found the Object.cshtml template, where can I find the default razor Object.cshtml Editor template?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下博客文章介绍了如何自定义编辑器模板: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
基本上你必须添加一个名为
Views\Shared\EditorTemplates\Object.cshtml
的文件,并将用于显示对象的所有逻辑放在那里。The following blog post describes how to customize the editor templates: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
Basically you have to add a file named
Views\Shared\EditorTemplates\Object.cshtml
and put all the logic for displaying the object there.当 @marcind 说它们被编译时,模板本身并不是嵌入的,而是用代码编写的。例如,
EditorFor
调用TemplateFor
,后者可能调用TextAreaExtensions.TextArea
或生成最终输出的代码的许多其他扩展之一。这可能是因为我们可以选择删除默认视图引擎并使用 nhaml 之类的东西。模板名称和创建结果输出的函数之间的映射可以在 System.Web.Mvc.Html.TemplateHelpers 中查看。另请参阅 System.Web.Mvc.Html.DefaultEditorTemplates。
目前最接近的东西是 Mvc3Futures 中存在的 Webforms 模板,可以在 aspnet.codeplex 上找到.com 网站。其中存在包含模板的 DefaultTemplates\EditorTemplates 文件夹。
这是 Object.ascx 模板:
When @marcind says they're compiled in, the templates themselves are not embedded but are rather written in code. For example,
EditorFor
callsTemplateFor
which may callTextAreaExtensions.TextArea
or one of many other extensions which generate the code that is ultimately output. This may be because the we have the option of removing the default view engine and using something like nhaml.The mapping between the template names and the function creating the resulting output can be seen in
System.Web.Mvc.Html.TemplateHelpers
. See alsoSystem.Web.Mvc.Html.DefaultEditorTemplates
.The closest thing that exists right now are the Webforms templates that exist in Mvc3Futures which are available on the aspnet.codeplex.com website. Within it exists an DefaultTemplates\EditorTemplates folder that contains the templates.
Here's the Object.ascx template: