我正在尝试从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
中做错了吗?
答案 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