我有两个名为FilmController的文件。一个在控制器文件夹中显示我的数据库数据,一个在一个名为API的文件夹中,允许用户以json格式查看数据。
我的问题是,在我的导航栏中,我有一个动作链接项,在创建API之前链接到控制器文件夹电影文件。现在它并不是一个目标。无论如何都要针对特定目标。
.group {
width: 700px;
margin: 0 auto;
}
.block {
width: 200px;
display: inline-block;
background: #333;
margin: 5px;
text-align: center;
color: white;
}
.one, .two, .three, .five {
height: 30px;
}
.four {
height: 160px;
}
我想将它指向控制器/电影文件。
答案 0 :(得分:2)
您不能使用ActionLink帮助程序来定位特定的Controller类。
但是,您可以在RouteConfig.cs中创建第二个路径定义。让这条路线指向另一个名称空间。然后将您的API代码放在此命名空间中:
routes.MapRoute(
"API",
"api/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MyMvcApp.Api" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
答案 1 :(得分:0)
对于在两个文件夹中具有相同名称的两个控制器具有类似问题的人,请考虑在ASP NET MVC项目中使用Areas,并将每个控制器放在不同的区域。然后,如果您在视图中使用@Html.ActionLink("Name", "Action", "Controller")
,它将始终根据您所在的区域来选择控制器,并且如果您想从另一个区域链接到控制器,则可以使用@Html.ActionLink("Name", "Action", "Controller", new { area = "AreaName" }, null)
。