我需要表示两个数据库实体,我需要在一个页面中输出它们。
我有类似的东西
浏览 高清 ViewA ViewB 测试 ViewC
我希望ViewC显示ViewA,它显示ViewB。
现在我正在使用这样的东西:
// View C
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionDetails"), i); %>
// View A
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionEditActions")); %>
这样做有好处吗?我发现用相对路径名链接会烧掉你。 有什么提示吗?
任何机会我都可以像......一样......
Html.RenderPartial( “定义”, “DefinitionDetails”,i)的; ?
感谢您的帮助
答案 0 :(得分:45)
这对我有用!
@Html.Partial("~/Views/NewsFeeds/NewsFeedPartial.cshtml")
答案 1 :(得分:34)
您可以参考具有完整路径的视图,例如:
Html.RenderPartial("~/Views/Definition/DefinitionDetails")
更好的是,使用T4MVC library,它执行上述操作并使其(准)强类型。您可以从任何控制器或视图引用任何视图。你这样使用它:
Html.RenderPartial(MVC.Definition.Views.DefinitionDetails)
或
Html.RenderPartial(MVC.Definition.Views.DefinitionDetails, myModel)
答案 2 :(得分:10)
只是为了澄清哪些选项可以正常工作:
以下示例假定使用cshtml文件。
RenderPartial
:// This looks in default view folder, then shared, checking for .aspx, .cshtml etc
Html.RenderPartial("DefinitionDetails");
// This looks in specified path and requires the extension
Html.RenderPartial("~/Views/Definition/DefinitionDetails.cshtml");
Partial
进行内联Razor语法:// This looks in default view folder, then shared, checking for .aspx, .cshtml etc
@Html.Partial("DefinitionDetails")
// This looks in specified path and requires the extension
@Html.Partial("~/Views/Definition/DefinitionDetails.cshtml")
注意:显然RenderPartial
比Partial
略快,但我也希望完全修改后的名称比让MVC搜索文件更快。
如果您在循环中(即从视图模型中的集合中)生成局部视图,则可能需要通过特定的视图模型:
@foreach (var group in orderedGroups)
{
Html.RenderPartial("~/Views/ControllerName/ViewName.cshtml", group);
}
我只需要在一个项目中完成所有这些工作,并发现标记的答案有点误导。
答案 3 :(得分:1)
您是否可以将部分文件复制到共享文件夹中,然后执行:
<% Html.RenderPartial("DefinitionDetails", i); %>
和
<% Html.RenderPartial("DefinitionEditActions"); %>