Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC如何链接视图和控制器?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.NET MVC如何链接视图和控制器?

Asp.net mvc ASP.NET MVC如何链接视图和控制器?,asp.net-mvc,Asp.net Mvc,当右键单击控制器方法以链接到视图时,VisualStudio添加了什么代码(它放在哪里?) 在没有Visual Studio的情况下,如何做到这一点(链接控制器和视图)?Visual Studio将在~/Views/{YourControllerName}下创建一个文件夹(如果它不存在),并将视图放在其中。如果在那里找不到,它将在~/Views/Shared文件夹中查找。如果要手动创建视图,需要将页面添加到其中一个文件夹中,最好是~/Views/{YourControllerName}文件夹。点

当右键单击控制器方法以链接到视图时,VisualStudio添加了什么代码(它放在哪里?)


在没有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)