我正在尝试从Startup.cs调用视图(如下所示)。控制器被称为AppController,方法是索引。
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错误。我认为在上面,我将默认设置为映射到AppController.cs
中的Index
方法。我认为问题是在我的索引控制器上我有一个HttpGet
,因为我有一个我想要在该页面上提交的表单(它正在工作)
[HttpGet("index")]
public IActionResult Index()
{
return View();
}
当我转到http://localhost:8000/index时,索引页将如期显示。我在Configure
中做错了什么吗?
发布于 2018-06-28 05:16:31
您只需使用:
[HttpGet("")]
或者只是
[HttpGet]
而不是
[HttpGet("index")]
HttpGet
属性需要一个模板,因此通过向该属性添加一个string
,您意味着只有当相对url为"/Index“时,您的操作才会中断。因此,请使用绝对URL "http://localhost:8000/index”。
如果您希望默认路由按照您配置的方式工作,那么您应该删除属性中的string
。
发布于 2018-06-28 05:16:31
我在allow for multiple routes to be mapped to the same action中添加了以下内容
[HttpGet("")]
[HttpGet("index")]
public IActionResult Index()
{
return View();
}
发布于 2018-06-29 23:33:24
[HttpGet]
会很好的。您还应该检查Routing documentation in ASP.NET Core Docs
https://stackoverflow.com/questions/51071420
复制相似问题