2017-07-18 21 views
0

.Net Core(Netcoreapp 1.1)でサイトを作成しています。ある時点で、私は別のコントローラからアクションをリダイレクトし、次のコードを使用して宛先アクションに情報を渡す必要がある:RedirectToAction、areas and passing class

public class MyInfo() 
{ 
    public string Area {get;set;} 
    public string Controller {get;set;} 
    public string Action {get;set;} 
    public string UserId {get;set;} 
} 

public class FirstController() : Controller 
{ 
    public IActionResult SelectUser() 
    { 
     return RedirectToAction("SelectUser", "Users", new 
     { 
      Area = "Security", 
      model = new MyInfo() 
      { 
       Area = "Weapons", 
       Controller = "First", 
       Action = "SelectUserCallback", 
      } 
     }); 
    } 
} 

public class UsersController() : Controller 
{ 
    public IActionResult SelectUser(MyInfo model) 
    { 
     //Show a dialog, set the results in model and return 
    } 
} 

このコードの目的は、ユーザのリストを示すダイアログを表示することで、 1人のユーザーを選択して、選択したユーザーをMyInfoで表されるコールバックに戻すことができます。 SelectUser関数が正しく呼び出され、モデルはnullではありませんが、モデルのすべてのプロパティはnullです。誰かが私がここで間違っていることを教えてもらえますか?

答えて

0

あるアクションから別のアクションへのパラメータの受け渡しは、まだ.net mvcではサポートされていません。あなたが望むように動作するには、一時的なデータや一時的なデータやセッションや永続的なストレージなどの一時的なストレージソリューションをデータベースのように使用する必要があります。

0

最後に解決策が見つかりました。複雑なオブジェクトとしてではなく、あるアクションから別のアクションにパラメータを渡すことができるようです。私のメソッドのシグネチャを次のように変更しました。

public IActionResult SelectUser(string callbackAction, string callbackController, string callbackArea) 

すべての情報が正しく渡されます。