加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 我可以在“区域”编辑器模板中为同一模型调用

发布时间:2020-12-16 04:38:01 所属栏目:asp.Net 来源:网络整理
导读:我有一个编辑器模板位置: Areas/Posts/Views/Shared/EditorTemplates/Question.cshtml 我也有一个: /Views/Shared/EditorTemplates/Question.cshtml 对于两者,模型是相同的. 我要做的是在帖子区域的视图中,在区域中调用我的编辑器模板,设置一些HTML然后冒
我有一个编辑器模板位置:

Areas/Posts/Views/Shared/EditorTemplates/Question.cshtml

我也有一个:

/Views/Shared/EditorTemplates/Question.cshtml

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

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

这是Posts EditorTemplate:

@model xxx.ViewModels.QuestionViewModel
@Html.Hidden("Id",(byte)Model.QuestionType)
@Html.EditorForModel()

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

如果我摆脱了Posts编辑器模板,那么共享的模板就会正确呈现.

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

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

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

解决方法

对于给定类型,您只能在运行时使用1个模板. ASP.NET MVC首先查看区域共享模板文件夹,因为它在那里找到相应的模板,它会选择它并使用它.然后它停止查看,并且从未使用放在主共享文件夹中的模板.这是设计的.

Is there any way i can tell it to go to the shared one?

是的,您可以明确指定模板的位置,但不会在区域文件夹中使用该模板:

@Html.EditorFor(x => x.Question,"~/Views/Shared/EditorTemplates/Question.cshtml")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读