使用ASP.NET Core MVC 6将编辑器模板放在view的文件夹中

Car*_*nke 10 mvc-editor-templates kendo-asp.net-mvc asp.net-core-mvc

使用MVC 4,我能够将视图的编辑器模板放入视图的文件夹中:AwesomeApp/Views/UserMgmt/EditorTemplates/UserSettings.cshtml.

现在我使用的是ASP.NET Core MVC 6,它找不到编辑器模板.我必须把它们放进去AwesomeApp/Views/Shared/EditorTemplates/UserSettings.cshtml.需要配置什么,所以我不必将所有编辑器模板都放在这个文件夹中?

我正在使用最新版本的Telerik用于ASP.NET MVC的Kendo UI.但我想这是应用程序本身的一部分.

最好的问候,Carsten

Sho*_*hoe 3

这在(至少)核心 2.2 中是开箱即用的。在其中一个演示中,他们将 EditorTemplates 文件夹放在视图文件夹下,而不是共享文件夹下。

我自己使用以下代码测试了这一点...

public class TestEditorForModel
{
    [Display(Name = "Testing a string property")]
    public string StringProp { get; set; }

    [Display(Name = "Testing an integer property")]
    [Range(100, 1000)]
    public int IntProp { get; set; }

    [Display(Name = "Testing a decimal property")]
    public decimal DecProp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

HomeController.cs

public IActionResult Index()
{
    return View(new TestEditorForModel
    {
        StringProp = "testing editorfor",
        IntProp = 123,
        DecProp = 123.456m
    });
}
Run Code Online (Sandbox Code Playgroud)

主页/EditorTemplates/TestEditorForModel.cshtml

@model TestEditorForModel

<div>
    <label asp-for="StringProp"></label>
    <input asp-for="StringProp" placeholder="Testing" />
</div>

<div>
    <label asp-for="IntProp"></label>
    <input asp-for="IntProp" placeholder="123" />
</div>

<div>
    <label asp-for="DecProp"></label>
    <input asp-for="DecProp" placeholder="100.00" />
</div>
Run Code Online (Sandbox Code Playgroud)

主页/Index.cshtml

@model TestEditorForModel

@Html.EditorFor(m => m)
Run Code Online (Sandbox Code Playgroud)

输出

在此输入图像描述