我有两个 URL,两者都应解析为同一页面。如果没有,则返回 404
http://localhost:xxx/Assets = 404 未找到
http://localhost:xxx/Assets/Index = 按预期工作
这是我的索引操作:
[HttpGet]
public IActionResult Index()
{
var vm = new AssetsIndexModel()
{
/* snipped, not important */
};
return View(vm);
}
这是我在 Startup.cs 中的唯一路线:
app.UseMvc(routes =>
{
routes.MapRoute("default", "{Controller}/{Action}/{id?}", defaults: new { Controller = "Home", Action = "Index" });
});
这是解决此问题的唯一操作。同一控制器中的所有其他操作都能正确解析。另外,如果我只是冲浪到“/Home”,我的 Home/Index 路线就可以工作。我可以在那里省略“/Index”,但不能在我的资产控制器中省略。
有谁知道我可能会忽略什么?
编辑:此外,我使用以下代码创建索引操作的链接
<a asp-controller="Assets" asp-action="Index">Manage Assets</a>
这会生成“/Assets”,因此 MVC 似乎知道它可以省略“Index”,但该链接不起作用并返回 404。
翻阅古今
相关分类