首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调用带参数的`EditorForModel`?

如何调用带参数的`EditorForModel`?
EN

Stack Overflow用户
提问于 2013-02-26 23:31:21
回答 1查看 12.7K关注 0票数 14

在发布这个问题之前,我使用参数谷歌了一下EditorForModel

我读了Why not use Html.EditorForModel()和这个blog

我没有找到任何与我的需求相关的文章。

你能给我提供一个使用参数调用EditorForModel的例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-26 23:35:18

下面是这个帮助器的6 overloads

  1. @Html.EditorForModel()

呈现~/Views/Shared/EditorTemplates/TypeName.cshtml模板,其中TypeName是视图模型的确切类型名称。如果你的视图模型是一个集合(即IEnumerable<TypeName>IList<TypeName>TypeName[],...)ASP.NET MVC将自动为集合的每个元素呈现相应的编辑器模板。你不需要在视图中编写任何循环来实现这一点。它是由you.

  • @Html.EditorForModel("templatename")框架处理的

呈现~/Views/Shared/EditorTemplates/templatename.cshtml,而不是依赖于

呈现默认编辑器模板,但向其传递可在内部通过ViewData["foo"]ViewBag.Foo

  • @Html.EditorForModel("templatename", new { Foo = "bar" })使用的附加视图数据

呈现~/Views/Shared/EditorTemplates/templatename.cshtml,而不是依赖于约定,并将可以在ViewData["foo"]ViewBag.Foo

  • @Html.EditorForModel("templatename", "fieldprefix")中使用的附加视图数据传递给它

呈现~/Views/Shared/EditorTemplates/templatename.cshtml而不是依赖于约定,并修改此模板内的导航上下文,这意味着例如,如果在此模板内有一个@Html.TextBoxFor(x => x.FooBar)调用,则您将获得name="fieldprefix.FooBar"而不是name="fieldprefix.FooBar"

呈现~/Views/Shared/EditorTemplates/templatename.cshtml而不是依赖于约定,并修改此模板内的导航上下文,这意味着例如,如果您在此模板内有一个@Html.TextBoxFor(x => x.FooBar)调用,您将获得name="fieldprefix.FooBar"而不是name="FooBar"。它还向它传递一个额外的视图数据,您可以在内部使用ViewData["foo"]ViewBag.Foo

备注:模板系统将首先在~/Views/XXX/EditorTemplates中查找模板,其中XXX是为该视图提供服务的控制器的名称,如果没有找到,将查找~/Views/Shared/EditorTemplates。这可以允许对模板进行更细粒度的调整。您可以在共享文件夹中具有默认模板,这些模板可以在每个控制器的基础上被覆盖。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15092998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档