【发布时间】:2017-06-08 00:16:11
【问题描述】:
我的控制器动作需要多个参数,但在 POST 上只有一个可以为空。它是十进制类型。基于默认路由的research I've done,它看起来仅限于为需要单个参数的操作设置默认值。
这是我收到的回复消息:
MVC :参数字典包含不可为空类型“System.Decimal”的参数“z”的空条目
这是 BarController.cs 中的方法签名:
[HttpPost]
public PartialViewResult Bar(int x, string y, decimal z) {*/Etc*/}
这是我尝试但未成功的路线(RouteConfig.cs):
routes.MapRoute(name: "Bar", url: "Foo/Bar/z",
defaults: new {controller = "Foo", action = "Bar", z= 0 });
我的请求正文包含 x 和 z 的值,但 y 可以为空。
如何重构以使 z 可以为空?除了字面上使它成为可以为空的十进制类型之外。我已经有订阅 Decimal 类型的算法,而不是可为空的变体。
【问题讨论】:
-
您能在此处添加代码以使问题更清晰
-
请分享您的控制器方法代码以及您在哪里调用它
-
@hasan 我已经更新了代码-谢谢。
标签: c# asp.net-mvc