当右键单击控制器方法链接到视图时,Visual Studio添加了哪些代码(以及它放在哪里?)?ASP.NET MVC如何链接视图和控制器?
如何在不使用Visual Studio的情况下执行此操作(链接控制器&视图)?
当右键单击控制器方法链接到视图时,Visual Studio添加了哪些代码(以及它放在哪里?)?ASP.NET MVC如何链接视图和控制器?
如何在不使用Visual Studio的情况下执行此操作(链接控制器&视图)?
这都是惯例。 您将视图放置在每个控制器的Views/ControllerName文件夹中,这是框架的默认位置。但这不是必须的。
当你的控制器,你写
return View();
框架假设你想用相同的名称动作名称的视图,并在视图/控制器/文件夹中查找它。然后查看/共享。
但你的行动,你可以写
return View("ViewName");
框架将寻找一个名为“视图名”,然后在同一个文件夹视图。
因此,视图的默认名称是正在执行的操作的名称。这是一个惯例。
Visual Studio将在〜/ Views/{YourControllerName}下创建一个文件夹(如果它不存在的话)并将你的视图放在那里。如果它没有在里面找到,它会在〜/ Views/Shared文件夹中查找。如果您想手动创建视图,则需要将页面添加到其中一个文件夹,最好是〜/ Views/{YourControllerName}文件夹。点击NerdDinner教程,看看这个实际操作。
是的,我找到了文件夹,我看到了这些文件,但我想知道aspx文件和控制器方法之间的链接(如果有的话)在哪里。 Mi的最终目标不取决于VS精灵 – 2010-01-08 20:51:20
Visual Studio中使用模板来创建默认视图。该模板位于[Visual Studio安装目录] \ Common7 \ IDE \ ItemTemplates [CSharp | VisualBasic] \ Web \ MVC \ CodeTemplates文件夹中。
如果你想手动创建一个MVC .aspx页面中,您需要简单地创建一个空白页面,并提供一个Page指令具有以下属性:
实施例:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<ListCompanyManagerDetailsViewModel>" %>
对于用户控件(.ASCX),相同的规则适用,除了不使用的MasterPageFile属性和你继承ViewUserControl。
实施例:
<%@ Control Language="C#" Inherits="ViewUserControl<Contact>" %>
P.S.名称空间不在我的任何类名之前的原因是因为我在我的web.config的部分中声明了它们。
默认情况下,asp.net MVC使用FormViewEngine,它是IViewEngine的一个实现。 IViewEngine有两个名为“FindView”和“FindPartialView”的方法,它实际上从“Views/Controller /”文件夹中查找视图文件。
感谢,
Rajeesh
你接受的答案,虽然非常好,信息量大,不回答你的问题,所以你不应该将其标记为接受。 Rajeesh的回答可能是更好的接受。 – Matt 2014-07-29 23:04:04