Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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 在.NET Core MVC中,联系人查看页面的命名约定和文件夹结构应该是什么?_Asp.net_Asp.net Mvc_Asp.net Core - Fatal编程技术网

Asp.net 在.NET Core 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

我刚刚开始学习.NET核心MVC。我正在创建一个“联系我们”查看页面。我的疑问是,我是否应该创建一个这样的结构

(一)

  • 视图(文件夹)
    -联系人(文件夹)

    -Index.cshtml

  • 控制器(文件夹)
    -ContactUsController.cs

(二)

  • 视图(文件夹)

    -主页(文件夹)

    -ContactUs.cshtml

  • 控制器(文件夹)

    -HomeController.cs

3) 这类似于cshtml文件的名称更改。是否希望使用ContactUs.cshtml页面比Index.cshtml页面在搜索引擎优化方面更好

  • 视图(文件夹)
    -联系人(文件夹)

    -ContactUs.cshtml

  • 控制器(文件夹)

    -ContactUsController.cs


控制器中每个ActionMethod的MVC加载视图的方式如下所示:

/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友好