【发布时间】:2021-02-02 15:03:31
【问题描述】:
我有一个 ASP.NET Core 3 MVC Web 应用程序和几个控制器。
我正在尝试形成我的链接以访问这些控制器,但我不确定我做错了什么。
控制器名称:Exhibitors、DemoQueue
每个控制器都有一个 Index 动作,它接受 2 个 int 类型参数
public IActionResult Index(int eventId, int companyId)
这是我的相关@987654327@ 代码
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
所以我的理解是,我可以通过这些 url 浏览到这 2 个操作:
Exhibitors/1/2
DemoQueue/3/4
但似乎我必须使用这个冗长的值:
Exhibitors/Index?eventId=1&companyId=2
有没有办法设置路线让我能够去[controller]/id/id?但是去一个不同的控制器,例如Exhibitors 或 DemoQueue
【问题讨论】:
-
您可以随时使用控制器/动作上的属性来自定义路由引擎,您不需要遵循 default 路由。 docs.microsoft.com/en-us/aspnet/core/fundamentals/…
-
我读到属性路由应该留给rest apis?
-
这就是你正在做的。 “Rest APIs”和“Websites”之间的唯一区别是网站大多使用 GET 动词并返回 HTML 而不是 json/xml。引擎盖下也是一样的。
标签: c# asp.net-core .net-core asp.net-core-mvc asp.net-core-routing