我继承了一个解决方案,它有很多旧代码,我正在尝试清理它。
我知道公约是视图与动作方法同名。
然而, 右键单击“操作方法”并选择“添加视图”时,可以选择视图的名称。是否存在映射或保留此关系的位置。
我知道'按惯例',视图引擎将搜索名称位于以下内容的视图:
〜/查看/ ControllerName 〜/查看/共享
但是如果你给一个视图一个不同于它的Action Name的名字MVC知道如何使用该文件,那么该方法的元数据中是否存储了一些数据。
例如我有一个
public class FooController : Controller {
public ActionResult Bar() {
return View();
}
}
但是当我右键单击并添加“添加视图...”时,我将视图命名为Random.cshtml
此Controller Action方法如何知道如何使用此视图。这些数据存储在哪里。
答案 0 :(得分:1)
默认情况下,它会返回与Action名称相同的视图,因此在您的情况下' Bar'。
但是,您也可以按名称指定不同的视图,如下所示:
return View("SomeViewOtherThanBar");
ETA:文件/类/等之间没有映射(我知道)。当您使用Visual Studio右键单击帮助程序来创建视图时。
答案 1 :(得分:0)
默认视图引擎在〜/ Views / [Controller] / [Action] .cshtml
下搜索具有相同操作名称的视图没有包含映射的元数据文件或任何类型的存储。
但是,如果要扩展/更改此行为,则可以编写和注入自己的视图引擎: