0

コントローラーで同じアクションメソッドのHTTPGetメソッドとHTTPPostメソッドで別のオブジェクトを返したいのですが、ビューに何を書けばいいのか、どのモデルを取得すればいいのかわかりません。これがコントローラーコードです、私は試してきました

[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)。ページがロードされたときに HttpGet に値を表示し、送信がクリックされたときに HttpPost の両方を表示したい。

意見

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

2 に答える 2

0

ビューは、1 つのクラスに対してのみ厳密に型指定できます。異なるコントローラー アクションで同じビューを返し、異なるモデルをこのビューに渡すことはできません。ビューモデルを使用できます。このビューに必要なすべての情報を保持するクラスを定義し、コントローラーアクションでこのビューモデルを埋めて、このビューに渡します。

于 2012-05-04T05:58:08.717 に答える
0

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

于 2012-05-04T05:59:37.987 に答える