将请求参数名称映射到具有不同名称的操作参数

时间:2019-05-23 10:11:01

标签: asp.net-mvc

我有操作方法:

public ActionResult GetBook(int id){
...
}

由于参数名称错误,因此不会接受此请求:

/controllerName/GetBook?bookId=3

我相信可以通过配置模型绑定程序以某种方式完成。

我希望该请求参数同时受"id""bookId"名称的约束。
换句话说,就是正在传递此请求:

/controllerName/GetBook?bookId=3

相同
/controllerName/GetBook?Id=3

1 个答案:

答案 0 :(得分:1)

我建议不要在项目中遵循这种设计,但是由于您只是想知道是否可行,所以我想您可以通过以下方式来做到这一点。

如下所示在RouteConfig.cs中注册路由

class SituationViewController: GBBaseViewController {
    // ....
    @IBOutlet var txtConsumption: UITextField!

    func fillValues(){
        let consumption = Double(self.txtConsumption.text) ?? 0 // the error happens here
    }
}

然后在您的控制器中,创建如下的操作方法

routes.MapRoute(
 "GetBook",
 "ControllerName/GetBook/{id}/{bookId}",
 new { controller = "ControllerName", action = "GetBook", id = UrlParameter.Optional, bookId = UrlParameter.Optional }
);