2017-06-27 14 views
0

I以下があります。.NET MVCルーティング)

return RedirectToAction("Index", "PATIENT", new { Patient = v }); 

私は基本的にインスタンスを輸送していますことを願っています( "V" は、患者クラスのインスタンスです) "PatientController"への "Patient"クラスの "v"?

"v"のデータにアクセスします。

はそれがPATIENTControllerの内側に作るために正しいです:関数本体内

public IActionResult Index(Patient p){} 

そして今、私は他のコントローラからの「V」へのフルアクセスを持っています?

編集:ここにあなたのコード内のモデルコード

public class Patient 
{ 

    public ObjectId _id { get; set; }//For MongoDB 
    public string Name { get; set; } 
    public int Age { get; set; } 
    public List<Encounter> Encounters { get; set; } 

    public Patient() { } 
    public Patient(ObjectId id, string name, int age) { 
     _id = id; 
     Name = name; 
     Age = age; 
    } 
} 
+2

にTempDataをにアクセスクエリ文字列の制限を超えて例外がスローされます。しかし正しいコードはreturn RedirectToAction( "Index"、 "PATIENT"、v);と 'public IActionResult Index(Patient p){}'ですが、正しい方法は、モデルのIDを渡して、再度取得することですGETメソッドで。 –

+0

さて、私は正しいアプローチをして、 "id"という文字列をつけてRedirectToAction( "Index"、 "PATIENT"、id)というようにしていただきありがとうございます。とインデックス(文字列id){} ?? –

+0

患者のモデルコードを教えてください。 –

答えて

0

削除コントローラsufixです。

return RedirectToAction("Index", "PATIENT", new { Patient = v }); 

または

return RedirectToAction("Index", new { Patient = v }); 

患者値は、クエリ文字列値として送信しています。

上記のコードが機能しない場合は、tempdataを使用し、値をtempdataに割り当てます。その後、

TempData["patient"] = v 

そしてPatient`は、単純なpropertes(任意のプロパティは、複雑なオブジェクトまたはコレクションであれば、それは失敗します)、そしてあなたのリスクが含まれている `場合にのみ動作しますあなたのインデックスメソッド

Patient pt = (Patient)TempData["patient"]; 
+0

OPが答えたいと思っている質問にはお答えできません。 – nbokmans

関連する問題