Asp.net 在.NET Core MVC中,联系人查看页面的命名约定和文件夹结构应该是什么?
我刚刚开始学习.NET核心MVC。我正在创建一个“联系我们”查看页面。我的疑问是,我是否应该创建一个这样的结构 (一)Asp.net 在.NET Core MVC中,联系人查看页面的命名约定和文件夹结构应该是什么?,asp.net,asp.net-mvc,asp.net-core,Asp.net,Asp.net Mvc,Asp.net Core,我刚刚开始学习.NET核心MVC。我正在创建一个“联系我们”查看页面。我的疑问是,我是否应该创建一个这样的结构 (一) 视图(文件夹) -联系人(文件夹) -Index.cshtml 控制器(文件夹) -ContactUsController.cs (二) 视图(文件夹) -主页(文件夹) -ContactUs.cshtml 控制器(文件夹) -HomeController.cs 3) 这类似于cshtml文件的名称更改。是否希望使用ContactUs.cshtml页面比Index.cs
- 视图(文件夹)
-联系人(文件夹) -Index.cshtml - 控制器(文件夹)
-ContactUsController.cs
- 视图(文件夹) -主页(文件夹) -ContactUs.cshtml
- 控制器(文件夹) -HomeController.cs
- 视图(文件夹)
-联系人(文件夹) -ContactUs.cshtml - 控制器(文件夹) -ContactUsController.cs
/Views/[Controller]/[ActionMethod].cshtml
/Views/Shared/[ActionMethod].cshtml
/Pages/Shared/[ActionMethod].cshtml
例如,对于控制器:
public IActionResult View1()
{
return View();
}
public IActionResult View2()
{
return View();
}
通常的文件夹结构应为:
现在,在这个具体案例中。提供ContactUs页面的常用方法是将此页面作为HomeController的ActionMethod,而不是为其创建整个控制器。MVC为控制器中的每个ActionMethod加载视图的方式如下所示:
/Views/[Controller]/[ActionMethod].cshtml
/Views/Shared/[ActionMethod].cshtml
/Pages/Shared/[ActionMethod].cshtml
例如,对于控制器:
public IActionResult View1()
{
return View();
}
public IActionResult View2()
{
return View();
}
通常的文件夹结构应为:
现在,在这个具体案例中。提供ContactUs页面的常用方法是将此页面作为HomeController的操作方法,而不是为其创建一个完整的控制器。老实说,从“代码”的角度来看,这并不重要。你上面概述的所有方法都可以很好地工作 您将从中获得以下URL: 1-
/contactus
2-/home/contactus
3-/contactus/contactus
正如你所看到的,它们都会起作用,但你也需要从SEO的角度考虑问题。
理想情况下,您希望使用像/contactus
这样的简单URL,因此在这种情况下,选项1似乎是最好的
也就是说,您仍然可以使用选项2或3,但您需要设置路由
,以使URL“友好”
大概是这样的:
例如,在选项2的startup.cs
中:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "contact",
defaults: new { controller = "Home", action = "ContactUs" });
template: "contactus");
});
指向yoursite.com/contactus
控制器和contactus
操作
注意:自定义路由需要放在默认路由之前。老实说,从“代码”的角度看,这并不重要。你上面概述的所有方法都可以很好地工作 您将从中获得以下URL: 1-
/contactus
2-/home/contactus
3-/contactus/contactus
正如你所看到的,它们都会起作用,但你也需要从SEO的角度考虑问题。
理想情况下,您希望使用像/contactus
这样的简单URL,因此在这种情况下,选项1似乎是最好的
也就是说,您仍然可以使用选项2或3,但您需要设置路由
,以使URL“友好”
大概是这样的:
例如,在选项2的startup.cs
中:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "contact",
defaults: new { controller = "Home", action = "ContactUs" });
template: "contactus");
});
指向yoursite.com/contactus
控制器和contactus
操作
注意:自定义路由需要放在默认路由之前。您可以在MVC中始终使用路由使URL的SEO友好。您可以始终在MVC中使用路由使URL的SEO友好