添加视图并显示它

本文关键字:显示 视图 添加 | 更新日期: 2023-09-27 18:19:40

我对MVC完全陌生。现在我正试图在文件夹Sample(位于Views文件夹下)中创建一个View。我右键单击Sample文件夹并选择"Add View",然后将视图名称设置为Test。创建视图后,我输入了以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Sample View</title>
</head>
<body>
    <p>
        Test
    </p>
</body>
</html>

构建。然后我尝试在浏览器中导航地址http://localhost:24694/Sample/Test。但浏览器显示"找不到资源"。为什么?我在Sample文件夹中也有其他cshtml文件(由其他人生成),它们运行良好。例如,在Sample的文件夹下有一个名为"Message.cs.html"的文件,我可以轻松地导航地址http://localhost:24694/Sample/Message。有什么需要我补充的吗?

添加视图并显示它

三步流程

1-定义路线

routes.MapRoute("Test", "test", 
                new { controller = "NameOfController", <- In your case TestController
                      action = "Index", <- Name of action in controller returning view
                      parameter = "parameterName - leave empty if no params needed"
                    });

2-创建控制器

因此,如果您按照上述方法并调用路由Test和视图Test,则需要创建名为TestController的控制器。MVC自动地把这些放在一起,这要归功于你之前所做的路由配置(RouteConfig.cs)

3-查看

在你的情况下,你只需要确保视图返回了一些东西。

就这么简单。祝你好运

您不能使用

http://localhost:24694/Sample/Test

导航到视图,因为您只能通过控制器访问视图。所以按照以下步骤

  1. 首先,在controllers文件夹中创建一个新的控制器,并将其命名为"SamplController"
  2. 默认情况下,会有一个名为Index()的操作方法
  3. 在"SampleController"内创建名为"Test"的新Action方法
  4. 现在右键单击"测试"操作方法,然后单击"添加视图"。它将在名为"Test.cshtml"的Views文件夹中添加一个新视图。您可以使用它。如果您想将此视图放置在其他文件夹中,则必须修改"Test"操作方法的返回语句。例如,您在Views文件夹中创建了一个文件夹"MyViews",并将"Test.cshtml"移到了那里。现在,"Test"操作方法中的return语句如下

return View("~Views/Sample/MyViews/Test.cs.html");

而不是

return View();

现在当你使用

http://localhost:port/Sample/Test

它将创建一个"Sample"控制器的新实例,并将调用"Test"操作方法。此方法将返回指定的视图。我希望它能有所帮助:)

ASP.NET MVC是基于路由的,而不是像ASP.NET webforms那样的文件系统。根据内部结构,视图应该位于ASP.NET MVC应用程序模板的Views文件夹中,就像Controllers应该位于Controllers文件夹中一样。它不是必需的,但默认情况下是从asp.net mvc框架中设置的。

Controller(类)中,可以有一些Actions(方法),这些方法可以返回视图、图像、文件等,这些实现派生自ActionResult类型。这些操作可以使用View方法从控制器基类返回一个视图。默认情况下,asp.net mvc将在"Views"文件夹中以及与Controller同名的文件夹中搜索视图(.cs.html或.aspx文件),例如,如果您有这样的控制器:

public class ProductController : Controller
{
   public ActionResult Index()
   {
      return View();
   }
}

它将在Views/Product/Index.cshtml中找到一个视图并为您渲染。我建议你在http://asp.net/mvc