C# 如何在ASP核心中使用HttpGet指定默认视图

C# 如何在ASP核心中使用HttpGet指定默认视图,c#,asp.net-core,C#,Asp.net Core,我正在尝试从Startup.cs(以下)调用一个视图。控制器名为AppController,方法为Index public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseDeveloperExceptionPage(); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute

我正在尝试从Startup.cs(以下)调用一个视图。控制器名为AppController,方法为Index

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseDeveloperExceptionPage();
    app.UseStaticFiles();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
        name: "default",
        template: "{controller=App}/{action=Index}");
    });
}
当我启动我的应用程序()时,我得到一个404错误。我以为上面我是在设置默认值以映射到
AppController.cs
中的
Index
方法。我认为问题在于,在我的索引控制器上,我有一个
HttpGet
,因为我有一个表单要在该页面上提交(它正在工作)

当我转到时,索引页将按预期显示。我是否在配置中出错?

您应该使用:

[HttpGet("")]
或者只是

[HttpGet]
而不是

[HttpGet("index")]
HttpGet
attribute需要一个模板,因此,通过向该属性添加
string
,您表示只有当相对url为“/Index”时,您的操作才会被命中,因此使用绝对url“”

如果希望默认路由按配置方式工作,则应删除属性中的
字符串。

只需使用:

[HttpGet("")]
或者只是

[HttpGet]
而不是

[HttpGet("index")]
HttpGet
attribute需要一个模板,因此,通过向该属性添加
string
,您表示只有当相对url为“/Index”时,您的操作才会被命中,因此使用绝对url“”

如果希望默认路由按配置方式工作,则应删除属性中的
字符串。

我添加了以下内容:

我添加了以下内容:


[HttpGet]
就可以了。您还应该检查
[HttpGet]
是否正常。您还应该检查