Asp.net mvc ASP.NET MVC如何链接视图和控制器?
当右键单击控制器方法以链接到视图时,VisualStudio添加了什么代码(它放在哪里?)Asp.net mvc ASP.NET MVC如何链接视图和控制器?,asp.net-mvc,Asp.net Mvc,当右键单击控制器方法以链接到视图时,VisualStudio添加了什么代码(它放在哪里?) 在没有Visual Studio的情况下,如何做到这一点(链接控制器和视图)?Visual Studio将在~/Views/{YourControllerName}下创建一个文件夹(如果它不存在),并将视图放在其中。如果在那里找不到,它将在~/Views/Shared文件夹中查找。如果要手动创建视图,需要将页面添加到其中一个文件夹中,最好是~/Views/{YourControllerName}文件夹。点
在没有Visual Studio的情况下,如何做到这一点(链接控制器和视图)?Visual Studio将在~/Views/{YourControllerName}下创建一个文件夹(如果它不存在),并将视图放在其中。如果在那里找不到,它将在~/Views/Shared文件夹中查找。如果要手动创建视图,需要将页面添加到其中一个文件夹中,最好是~/Views/{YourControllerName}文件夹。点击NerdDinner教程,看看它的实际效果
Visual Studio使用模板创建默认视图。模板位于[Visual Studio安装目录]\Common7\IDE\ItemTemplates[CSharp | VisualBasic]\Web\MVC\CodeTemplates文件夹中 如果希望手动创建MVC.ASPX页面,只需创建一个空白页面并提供具有以下属性的页面指令:
- 语言(“C#”或“VB”)
- MasterPageFile(默认值为~/Views/Shared/Site.Master)
- 继承(对于强类型模型,使用ViewPage;否则使用ViewPage)
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<ListCompanyManagerDetailsViewModel>" %>
对于用户控件(.ASCX),应用相同的规则,但不使用MasterPageFile属性,并且继承自ViewUserControl
例如:
<%@ Control Language="C#" Inherits="ViewUserControl<Contact>" %>
另外,名称空间不在我的任何类名之前的原因是因为我在我的web.config节中声明了它们。这都是惯例。
您将视图放置在每个控制器的views/ControllerName文件夹中,这是framework要查找的默认位置。但无论如何,这不是必须的
当您在控制器中写入
return View();
框架假定您想要与操作名称同名的视图,并在Views/Controller/folder中查找它。然后是视图/共享
但在你的行动中你可以写
return View("ViewName");
框架将在相同的文件夹中查找名为“ViewName”的视图
因此,视图的默认名称是正在执行的操作的名称。这是一个惯例。默认情况下,asp.net MVC使用FormViewEngine,它是IViewEngine的一个实现。IViewEngine有两个方法,分别称为“FindView”和“FindPartialView”,它们实际上从“Views/Controller/”文件夹中定位视图文件 谢谢,
是的,我找到了文件夹,看到了那些文件,但我想知道aspx文件和controler方法之间的链接(如果有)在哪里。Mi的最终目标并不取决于您接受的答案,虽然答案很好且信息丰富,但无法回答您的问题,因此您不应将其标记为已接受。拉吉什的答案也许是一个更好的答案。很简单,但非常有用。谢谢你的简洁。仅供参考,这也适用于PartialView(“ViewName”),您还可以通过这两种方法传入模型:View(“ViewName”,model)