是否可以使用 maproute 在 asp.net mvc 中路由多个参数
Posted
技术标签:
【中文标题】是否可以使用 maproute 在 asp.net mvc 中路由多个参数【英文标题】:Is it possible to have route multiple parameters in asp.net mvc using maproute 【发布时间】:2011-06-28 14:58:26 【问题描述】:我希望用户能够使用 restful 语法访问对象(可以是 JSON 或 XML),而不必使用查询字符串。
因此,他们可以代替http://mywebsite.com/objects/get=obj1&get=obj2&get=someotherobject/
执行http://mywebsite.com/objects/obj1/obj2/
之类的操作,然后将返回xml/JSON。他们可以按任何顺序列出对象,就像使用查询字符串一样。
在 asp.net mvc 中,您可以像这样映射路由:
routes.MapRoute(
"MyRoute",
"MyController/MyAction/param",
new controller = "MyController", action = "MyAction", param = ""
);
我想做这样的事情:
routes.MapRoute(
"MyRoute",
"MyController/MyAction/params",
new controller = "MyController", action = "MyAction", params = []
);
params
数组将包含每个 get。
【问题讨论】:
【参考方案1】:不完全是。
您可以通过映射*params
来创建通配符参数。
这会给你一个包含所有参数的字符串,然后你可以.Split('/')
。
【讨论】:
是否可以将 ASP.NET MVC MapRoutes 移动到 XML 文件,而不是以编程方式使用 routes.MapRoute?此外,将其推送到 XML 文件而不是将其编码为 C# 和/或 VB.NET 不是更好的做法吗? @user1338998:您可以编写自己的代码来读取 XML 并调用MapRoute()
。其他人可能已经编写了这样的代码
大声笑,我不想在 .NET 开发人员和 JEE 开发人员之间展开恶性辩论。然而,我想提一下,在 JEE 技术中,配置到 JSF MVC 和 Struts MVC 中的视图的映射总是在像 faces-config.xml 和 struts-config.xml 这样的 XML 文件中,这是正确的做法,因为我们没有不想重新编译。也就是说,我们可以修改xml,然后重启服务器。【参考方案2】:
你可以使用一个包罗万象的参数
routes.MapRoute(
"MyRoute",
"MyController/MyAction/*params",
new controller = "MyController", action = "MyAction"
);
这会将参数作为字符串传递,您可以将其拆分为 /
以获取数组。
【讨论】:
以上是关于是否可以使用 maproute 在 asp.net mvc 中路由多个参数的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 2.2 MVC MapRoute 项目到 ASP.NET 3.0 端点 MapAreaControllerRoute “找不到此本地主机页面”