【问题标题】:Optional bool parameters in mvc controllermvc 控制器中的可选布尔参数
【发布时间】:2012-09-07 15:59:28
【问题描述】:

这是我想要的:

 [GET("page/{id}/")]
    public ActionResult Execute(Guid id, bool x = false, bool y = false, 
                                         bool z = false)

我想让 bools 可选的原因是我以后可以像这样使用这个方法:

return RedirectToAction<SomeController>(c => c.Execute(id, y: true));

不幸的是,当我尝试构建解决方案时,我收到以下错误:“表达式树可能不包含使用可选参数的调用或调用”和“表达式树可能不包含命名参数规范”。

我的问题是:是否可以用控制器做类似的事情?路由中的可选参数呢?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-routing optional-parameters


    【解决方案1】:

    您可以改用模型类。 比如:

    public class ExecuteModel
    {
        public Guid id {get;set;}
        public bool x {get;set;}
        public bool y {get;set;}
        public bool z {get;set;}
    }
    

    并将您的操作更改为:

    public ActionResult Execute(ExecuteModel model)
    {
       ...
    }
    

    你的重定向会变成:

    return RedirectToAction<SomeController>(c => c.Execute(
        new ExecuteModel{id=id, y=true}));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多