返回局部视图时有没有办法设置约定?例如: 我有以下内容:
HomeController ---> Home(action Method) --> _Home.ascx (partial view)
AboutController ---> About(action Method) --> _About.ascx (partial view)
我目前正在将部分视图名称显式传递给PartialView助手(即返回PartialView(“_ home”);)
注意:不使用T4MVC。
由于
答案 0 :(得分:0)
我相信你应该总是明确地传递部分视图名称,因为搜索它的文件ViewEngineCollection.cs中的代码会引发异常,否则:
public virtual ViewEngineResult FindPartialView(ControllerContext controllerContext,
string partialViewName)
{
// skipped code
if (string.IsNullOrEmpty(partialViewName))
{
throw new ArgumentException(MvcResources.Common_NullOrEmpty,
"partialViewName");
}
// skipped code
}
虽然如果重写此方法,您可能会使用某些名称约定。
答案 1 :(得分:0)
负责将视图名称映射到正确文件的MVC运行时组件称为ViewEngine。在ascx文件的情况下,它是默认的WebFormViewEngine。它公开包含默认查找模式的属性。例如,您可以修改PartialViewLocationFormats
而不是:
"~\Views\{1}\{0}.ascx"
"~\Views\Shared\{0}.ascx"
是这样的:
"~\Views\{1}\_{0}.ascx"
"~\Views\Shared\_{0}.ascx"
请注意,此更改将适用于所有部分视图查找。