相关疑难解决方法(0)

在编辑器模板中,使用相同的模型调用另一个编辑器模板

我有一个编辑器模板,在该编辑器模板中,我想调用具有相同模型的另一个编辑器模板(即嵌套),但似乎没有显示.
即.\ EditorTemplates\Template1.cshtml

@model foo

// insert code here to edit the default fields.

// display extra fields via another editor template.
@Html.EditorForModel("Template2")   // or @Html.EditorFor(m => m, "Template2")
Run Code Online (Sandbox Code Playgroud)

和\ EditorTemplates\Template2.cshtml

@model foo

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

我相信有人会质疑为什么?好吧,只有满足条件时才会显示嵌套模板(即@if(@ Model.IsConditionMet){....}),但为了简单起见,我将其从原型中删除了.

asp.net-mvc nested editortemplates razor display-templates

28
推荐指数
1
解决办法
4193
查看次数

我是否可以在"区域"编辑器模板中为同一模型调用"共享"编辑器模板?

我有一个编辑器模板位置:

地区/职位/查看/共享/ EditorTemplates/Question.cshtml

我也有一个:

/Views/Shared/EditorTemplates/Question.cshtml

对于两者,模型是相同的.

我想要做的是在该Posts区域的视图中,在该区域中调用我的编辑器模板,设置一些HTML,然后冒泡回到主共享编辑器模板.

这是PostsEditorTemplate:

@model xxx.ViewModels.QuestionViewModel
@Html.Hidden("Id", (byte)Model.QuestionType)
@Html.EditorForModel()
Run Code Online (Sandbox Code Playgroud)

但它只是渲染了隐藏字段,而不是共享编辑器模板的内容.

如果我删除了Posts编辑器模板,则会正确呈现共享模板.

我猜MVC/Razor认为这是递归的还是什么?就像我调用相同的模板?

有什么方法我可以告诉它去共享的吗?

本质上,我正在尝试在共享模板中重用HTML,但是注入了一些我自己的偷偷摸摸的HTML.

mvc-editor-templates razor asp.net-mvc-3

8
推荐指数
2
解决办法
5339
查看次数