我在MVC4中面临一个问题。如果我在调用.cshtml时没有提供RenderPartial,那么它就不是在调用Partial。
例如
@Html.RenderPartial("_Common.cshtml") //it is working
@Html.RenderPartial("_Common") //it is not working我的问题是为什么它不起作用?
发布于 2014-05-22 09:14:00
正如Zabavsky所提到的,您的部分视图(双扩展名)上可能有不正确的文件名。昨天刚在一个项目上这么做,很容易做,但是Partial我认为你应该使用而不是 RenderPartial
为了澄清哪些选项应该起作用:
1)如果提供路径,则需要扩展视图文件。
2)如果不提供路径,则不要提供扩展。
下面的示例假设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");在内联Razor语法中使用Partial:
// 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);
}https://stackoverflow.com/questions/23801677
复制相似问题