Html.RenderPartial - 渲染位于另一个文件夹中的局部视图

时间:2015-10-03 10:48:58

标签: asp.net-mvc razor html.renderpartial

我在Views-Department文件夹中查看了'Create.cshtml'。我想使用位于根目录下的部分视图,'CommonViews',名称为'_EnterpriseStructure.cshtml'。 我正在使用语法RenderPartial

 @{Html.RenderPartial("~/CommonViews/_EnterpriseStructure.cshtml");}

部分视图代码

<div id="Client">
   This is a Partial View.
</div>

执行时我收到System.InvalidOperationException。

详细错误是:

'〜/ CommonViews / _EnterpriseStructure.cshtml'的视图必须来自WebViewPage或WebViewPage。

我正在使用ASP.Net MVC 5 Razor Views

2 个答案:

答案 0 :(得分:0)

我发现Razor视图引擎正在“Views / Shared”,“Views / Departments”文件夹中搜索。当我将部分视图移动到'共享'文件夹时,它工作正常。 您不能包含路径,您只需要提供视图名称。并添加文件夹以搜索View引擎。 我无法弄清楚的是“如何为View Engine提供更多搜索位置?”

答案 1 :(得分:0)

我认为你在MVC项目中使用T4MVC nuget包。一旦包裹包含在您的项目中,您只需选择&#34; T4MVC.tt&#34;在您的项目中使用文件(解决方案资源管理器)并说出&#34;运行自定义工具&#34;。就是这样。这将为MVC项目中的几乎所有内容创建常量。这意味着,所有视图,控制器,动作,javascript文件,资源,css文件,图像等现在都有常量。这样你就可以避免在方法中使用硬编码字符串进行视图等,并且可以使用生成的常量由T4MVC。您不必担心视图路径等问题.T4MVC非常有效,是MVC项目的必备条件。

相关问题