添加视图并显示它
本文关键字:显示 视图 添加 | 更新日期: 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
导航到视图,因为您只能通过控制器访问视图。所以按照以下步骤
- 首先,在controllers文件夹中创建一个新的控制器,并将其命名为"SamplController"
- 默认情况下,会有一个名为Index()的操作方法
- 在"SampleController"内创建名为"Test"的新Action方法
- 现在右键单击"测试"操作方法,然后单击"添加视图"。它将在名为"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