首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Html.RenderPartial("_Common.cshtml")和@Html.RenderPartial("_Common")有什么区别?

@Html.RenderPartial("_Common.cshtml")和@Html.RenderPartial("_Common")有什么区别?
EN

Stack Overflow用户
提问于 2014-05-22 08:33:11
回答 1查看 4K关注 0票数 2

我在MVC4中面临一个问题。如果我在调用.cshtml时没有提供RenderPartial,那么它就不是在调用Partial。

例如

代码语言:javascript
复制
 @Html.RenderPartial("_Common.cshtml") //it is working
 @Html.RenderPartial("_Common") //it is not working

我的问题是为什么它不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-22 09:14:00

正如Zabavsky所提到的,您的部分视图(双扩展名)上可能有不正确的文件名。昨天刚在一个项目上这么做,很容易做,但是Partial我认为你应该使用而不是 RenderPartial

为了澄清哪些选项应该起作用:

1)如果提供路径,则需要扩展视图文件。

2)如果不提供路径,则不要提供扩展。

下面的示例假设cshtml文件。

在代码块中使用RenderPartial

代码语言:javascript
复制
// 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");

在内联Razor语法中使用Partial

代码语言:javascript
复制
// 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")

注意:显然RenderPartialPartial稍快,但我也希望完全路径的名称比让MVC搜索文件更快。

如果在循环中生成部分(即从视图模型中的集合生成),则可能需要遍历特定的视图模型:

例如:

代码语言:javascript
复制
   @foreach (var group in orderedGroups)
   {
       Html.RenderPartial("~/Views/ControllerName/ViewName.cshtml", group);
   }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23801677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档