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 に答える