c# - 具有多个参数的 Mvc 属性路由问题
问题描述
我在 Pro 控制器中定义了 Details 方法,我想将此方法映射到多种类型的 url。
请检查下面的代码,我已经尝试过使用一个参数的另一种方法并且它正在工作,但在这种情况下它不适用于多个可选参数。
[Route("Vehicles/Details/{no}/{aTab?}/{rs?}/{fp?}")]
[Route("Pro/Details/{no}/{aTab?}/{rs?}/{fp?}")]
[Authorization(SA.PMV, Rights.View)]
public ActionResult Details(string no, string aTab, string rs, bool fp = false)
{
return View();
}
调试中显示错误:
在控制器“ProController”上找不到公共操作方法“详细信息”。
当我请求以下 URL 时:
http://www.example.com/Pro/Details?no=sT90Fjts0qI$&aTab=viewdetails&rs=viewdetails&fp=false
解决方案
定义路由的最佳方法是进入 route.config,如下所示
routes.MapRoute("namesearch","Details/{no}/{aTab}/{rs}/{fp}",
new { controller = "controllerName", action = " Details",
no = UrlParameter.Optional, aTab = UrlParameter.Optional,
rs = UrlParameter.Optional ,fp = UrlParameter.Optional});
推荐阅读
- kubernetes - Alertmanager 不加载 webhook_config
- selenium - 是否可以使 @dataprovider 名称通用而不是硬编码
- spring - 不使用 thymeleaf、spting 数据和 r2dbc 持久化实体
- java - 在 CompletableFuture 的 handleAsync() 中重新抛出异常
- reactjs - 响应式图表
- python - 从 Dropbox 链接解析 .xls 文件
- android - 如何从材料库中排除不需要的类?
- css - 当应用具有特定宽度和溢出的 div 包裹的表格时,td 宽度不适用
- c# - 使用 C#,如何从智能表中获取“x”在第 2 列中的所有行?
- r - 计算时间序列数据的曲线下面积