我对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.cshtml”的文件,我可以轻松导航地址http://localhost:24694/Sample/Message
。有什么我应该补充的吗?
答案 0 :(得分:2)
3步骤
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 的控制器。由于您之前做过的路由配置(RouteConfig.cs)
,MVC会自动将这些播放到一起3 - 查看
在您的情况下,您只需确保视图返回一些内容。
很容易。祝你好运。
答案 1 :(得分:1)
ASP.NET MVC基于routing而不是像asp.net webforms这样的文件系统。在内部结构之后,视图应位于ASP.NET MVC应用程序模板的Views
文件夹中,如Controllers
应保留在Controllers文件夹中。它不是必需的,但默认情况下是从asp.net mvc框架设置的。
在你的Controller
(类)中,你可以有一些Actions
(方法),它们可以返回从ActionResult
类型派生的视图,图像,文件等实现。这些操作可以使用控制器基类中的View
方法返回视图。默认情况下,如果您有这样的控制器,asp.net mvc将在'Views`文件夹和与Controller名称相同的文件夹中搜索视图(.cshtml或.aspx文件):
public class ProductController : Controller
{
public ActionResult Index()
{
return View();
}
}
它会在Views/Product/Index.cshtml
中找到一个视图并为您呈现。我建议您在http://asp.net/mvc
答案 2 :(得分:1)
你不能使用
http://localhost:24694/Sample/Test
导航到视图,因为您只能通过控制器访问视图。请按照以下步骤操作
返回视图(“〜Views / Sample / MyViews / Test.cshtml”);
而不是
返回View();
现在使用
http://localhost:port/Sample/Test
它将创建一个'Sample'Controller的新实例,并将调用'Test'动作方法。此方法将返回指定的视图。我希望它会有所帮助:)