如何在ASP Core

时间:2018-06-27 21:07:31

标签: c# asp.net-core

我正在尝试从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}");
    });
}

启动我的应用程序(http://localhost:8000/)时,出现404错误。我以为上面我在设置默认值以映射到Index中的AppController.cs方法。我认为问题在于,在我的索引控制器上,我有一个HttpGet,因为我有一个要在该页面上提交的表单(正在运行)

[HttpGet("index")]
public IActionResult Index()
{
    return View();
}

当我转到http://localhost:8000/index时,索引页将按预期显示。我在Configure中做错了吗?

3 个答案:

答案 0 :(得分:3)

您应该使用:

[HttpGet("")]

或者只是

[HttpGet]

代替

[HttpGet("index")]

HttpGet属性需要一个模板,因此通过在此属性中添加string表示您的操作仅在相对URL为“ / Index”时才被选中,因此使用绝对URL为“ {{ 3}}”。

如果您希望默认路由按照您配置的那样工作,则应删除属性中的string

答案 1 :(得分:1)

我在http://localhost:8000/index中添加了以下内容:

[HttpGet("")]
[HttpGet("index")]
public IActionResult Index()
{
    return View();
}

答案 2 :(得分:0)

[HttpGet]可以。您还应该检查Routing documentation in ASP.NET Core Docs