在ASP.NET Core MVC中路由到子文件夹

时间:2017-04-24 22:08:37

标签: c# asp.net asp.net-mvc asp.net-core

我想在Edit模型视图(Views / Companies / Employees / Edit)中的子文件夹中路由到Companies页面。

我尝试在公司模型视图的 Index.cshtml 中使用<a asp-action="Employees/Edit" asp-route-id="@model.ID">Edit</a>进行此操作,该视图会打开一个包含链接http://localhost:xxxxx/Companies/Employees%2FEdit/1的空白页面。正确的观点应该在http://localhost:xxxxx/Companies/Employees/Edit/1上。

任何人都可以向我解释为什么我会这样做?

这是Startup.cs:

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

1 个答案:

答案 0 :(得分:4)

您尚未设置asp-controller属性。

<a asp-action="Employees/Edit" asp-route-id="@model.ID">Edit</a>

应该是

<a asp-action="Edit" asp-controller="Employees" asp-route-id="@model.ID">Edit</a>

我不确定为什么你会像你一样拥有子文件夹。 它应该是Views/ControllerName/ActionName(这是惯例)

Edit控制器中是否有Employees个动作?或Edit控制器中的Companies操作?