我无法让我的ASP .NET Core MVC站点路由到Home以外的其他控制器。我更改了Startup
中的默认路由(它是唯一的路由):
app.UseMvc(routes =>
{
routes.MapRoute(name: "default", template: "{controller=profile}/{action=index}/{id?}");
});
我的ProfileController
看起来像:
public class ProfileController : Controller
{
[HttpGet("index")]
public IActionResult Index()
{
return View();
}
...
}
但我得到的只是在导航到基本URL时从Kestrel服务器返回的404。
答案 0 :(得分:0)
我刚刚创建了一个新项目,它对我有用。也许你做错了什么。
这就是我的所作所为。
更新Startup.cs中的默认路由:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
} else {
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes => {
routes.MapRoute(
name: "default",
template: "{controller=profile}/{action=index}/{id?}");
});
}
创建配置文件控制器:
public class ProfileController : Controller {
// GET: /<controller>/
public IActionResult Index() {
return View();
}
}
为配置文件控制器创建索引视图:
更新:
问题是配置文件控制器中的[HttpGet("index")]
。