gpt4 book ai didi

c# - 我应该如何使用其参数调用 `EditorForModel`?

转载 作者:可可西里 更新时间:2023-11-01 08:16:44 26 4
gpt4 key购买 nike

在发布这个问题之前,我使用参数在谷歌上搜索了 EditorForModel

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

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

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

最佳答案

6 overloads这个 helper :

  1. @Html.EditorForModel()

    呈现 ~/Views/Shared/EditorTemplates/TypeName.cshtml模板在哪里 TypeName是您的 View 模型的确切类型名称。如果您的 View 模型是一个集合(即 IEnumerable<TypeName>IList<TypeName>TypeName[]、...),ASP.NET MVC 将自动为集合中的每个元素呈现相应的编辑器模板。您无需在 View 中编写任何循环即可实现这一点。它由框架为您处理。

  2. @Html.EditorForModel("templatename")

    呈现 ~/Views/Shared/EditorTemplates/templatename.cshtml而不是依赖约定

  3. @Html.EditorForModel(new { Foo = "bar" })

    呈现默认编辑器模板,但将额外的 View 数据传递给它,您可以在内部使用 ViewData["foo"]ViewBag.Foo

  4. @Html.EditorForModel("templatename", new { Foo = "bar" })

    呈现 ~/Views/Shared/EditorTemplates/templatename.cshtml而不是依赖约定并将额外的 View 数据传递给它,您可以在内部使用 ViewData["foo"]ViewBag.Foo

  5. @Html.EditorForModel("templatename", "fieldprefix")

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

  6. @Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })

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

备注:模板系统会先在~/Views/XXX/EditorTemplates中寻找模板其中 XXX 是为该 View 提供服务的 Controller 的名称,如果找不到,它将查看 ~/Views/Shared/EditorTemplates。 .这可以允许对模板进行更细粒度的调整。您可以在共享文件夹中拥有默认模板,这些模板可以根据 Controller 进行覆盖。

关于c# - 我应该如何使用其参数调用 `EditorForModel`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com