2012-05-04 12 views
0

私はHTTPGetメソッドとHTTPPostメソッドの異なるオブジェクトをコントローラ内の同じアクションメソッドで返したいと思っていますが、どのモデルを表示するかはわかりません。ここで は、コントローラのコードで、私はHttp getとHttp Postで同じアクションメソッドのビューで別のオブジェクトを返すことはできますか?

[HttpGet] 
public ActionResult Create() 
     { 
      var intSrNo = Convert.ToInt64(TempData["sr_no"]); 
      MEntities obj_entity = new MEntities(); 
      UDP_get_a_Result obj_proc = obj_entity.UDP_get_a(intSrNo).SingleOrDefault(); 
      return View(obj_proc); 
     } 

[HttpPost] 
     public ActionResult Create(Table_a obj_a) 
     {   
      if (ModelState.IsValid) 
      { 
       db.Table_a.AddObject(obj_a); 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      return View(obj_a); 
     } 

をしようとしている私は(Table_aまたはUDP_get_a_Result)。ビューで書くのはどのモデル混乱していると私は、ページがロードされ、HttpPostたときにされたときに、両方のHTTPGETに値を表示したいです送信がクリックされます。

ビュー

@model ABC.models.Table_a   
@{ 
    ViewBag.Title = "Create"; 
} 

答えて

0

ビューは強く、単一のクラスに入力することができます。同じビューを返し、異なるモデルをこのビューに渡す、異なるコントローラアクションを持つことはできません。ビューモデルを使用することができます。このビューに必要なすべての情報を保持するクラスを定義し、コントローラのアクションでこのビューモデルを満たし、このビューに渡します。

0

私は、ビューをいくつかの基本クラス(オブジェクト)に型付けしてから、モデルをget/postに基づいて必要なものにキャストするように動作すると思います。私はそれを維持したくないだろう。 :-D

関連する問題