asp.net-mvc - 使用带有前缀的属性路由控制器的 Url.Action 助手生成 url
问题描述
我已经定义了这样的地图路线:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=User}/{action=Student}/{id?}");
});
我有一个带有属性路由的 API 操作,如下所示:
[Route("api/User")]
public class UserApiController : Controller
{
....
[HttpGet]
[Route("Teacher")]
public async Task<IEnumerable<UserApiVM>> GetTeachers()
{
....
}
}
我可以访问浏览到像“ http://api/User/Teacher ”这样的直接网址。
现在我想使用@URL.Action 帮助器或任何其他帮助器生成该 url,但我不知道如何。我试过了
@Url.Action("Teacher","UserApi")
但它找不到控制器。
顺便说一句,控制器是控制器位于名为“Controllers”的文件夹中,而 API 控制器位于“Controllers”文件夹内的名为“API”的文件夹中。
谢谢!
解决方案
对于生成api/User/Teacher
,您需要指定GetTeachers
为控制器名称而不是Teacher
.
@Url.Action("GetTeachers", "UserApi")
如果你想通过指定生成 URL Teacher
,你可以尝试如下设置路由名称:
[HttpGet]
[Route("Teacher",Name = "Teacher")]
public async Task<IEnumerable<string>> GetTeachers()
{
return null;
}
并通过以下方式生成 URL:
@Url.RouteUrl("Teacher")
推荐阅读
- html - 如何在 Django 的帖子模型中添加 HTML 标记功能
- python - Django local_settings.py 保护和权限
- flutter - 获取时我应该更新 settings.gradle:插件项目:location_web 未找到。请更新 settings.gradle。但应用程序仍然有效?
- python - JSON Python BS4 - 从 JSON 提取中获取多个值
- python - python gdown DistributionNotFound; 文件是exe期间的错误
- python - 如何在Django中将两个日期连接成一个字符串?
- python - Python 递归问题 (Leetcode 542)
- python - 如何从二维张量流数组中检索特定元素?
- swift - 如何将通用类型 SignedNumeric 转换为 Float?
- node.js - 无法使用 React 和 Node.js 通过 Axios 和 Nodemailer 发送发布请求 - 处于开发模式