1

这是我想要的:

 [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));

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

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

4

1 回答 1

2

您可以改用模型类。就像是:

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}));
于 2012-09-07T16:06:19.893 回答