1

下图显示了文件夹中的Partial View GetMovieTypes.cshtml生活Shared

@Html.Partial("GetMovieTypes.cshtml")我使用EmployeeController 的索引视图中的行调用部分视图

问题是当我使用索引操作调用员工控制器时出现服务器错误

未找到部分视图“_GetMovieTypes.cshtml”或没有视图引擎支持搜索到的位置。搜索了以下位置:

~/Areas/Staff/Views/Employee/GetMovieTypes.cshtml.cshtml

但是当我重命名它时PartialView to GetMovieTypes.cshtml.cshtml它工作正常

为什么 ViewEngine 强迫我添加 .cshtml 扩展名两次

在此处输入图像描述

4

4 回答 4

7

删除.cshtml部分:

@Html.Partial("GetMovieTypes")
于 2012-08-20T13:59:28.487 回答
4

你只需要打电话

@Html.Partial("GetMovieTypes")

不被绑定识别为扩展分隔符。MVC所以如果你写

“GetMovieTypes.cshtml” 它会准确搜索该名称以及 cshtml扩展名。

于 2012-08-20T13:59:49.330 回答
2

您应该将代码调用更改为

@Html.Partial("_GetMovieTypes")

因为那是您的视图的名称,所以我一直这样做。

无需提及扩展名,仅当您从Controller.

我自己的例子:

在此处输入图像描述

于 2012-08-20T14:00:35.867 回答
2

您需要删除 .chtml 扩展名:

@Html.Partial("GetMovieTypes")

您还可以像这样在“父”视图中传递您拥有的模型:

@Html.Partial("GetMovieTypes", MovieTypesModel)

使用此方法,您的视图及其部分具有相同的模型和信息

*也许我错了,但我认为您在视图名称中也有一个下划线,所以您应该这样称呼它:

@Html.Partial("_GetMovieTypes", MovieTypesModel)
于 2012-08-20T14:01:23.697 回答