2009-08-18 17 views
1

私のコントローラは2つのアクションがあります。asp.net mvcでビューを共有できますか?

  • 結果()
  • 指数()

を私はこれらの2つのアクション間index.aspxという名前のビューを共有したいです。

私はページに私のリンクを構築するとき、私はそれがFormCollection種類を期待しているので、私は結果のアクション

public ActionResult Results(ClientSearch data, int? page) 
    { 
     FormCollection collection = new FormCollection(); 
     collection.Add("FNAme", data.FName); 
     collection.Add("Lane", data.Lane); 
     collection.Add("Zip", data.Zip); 
     collection.Add("Phone", data.Phone); 


     return Index(page, collection); 
    } 
を作成すると、私は Index行動にそれを送信することはできませんと仮定詳しく

ためmy previous postを参照してください。

答えて

3

もちろん可能です。どのように反応するのか、そしてどのような意見を返すのかは、コントローラーによって決まります。

私は最後にあなたの質問を読んだので:))、まあ、あなたは同じ名前の2つの行動で逃げることができます。一方はGETコマンド(ページの初期ロード)を受け入れ、もう一方はPOST要求を処理し、必要なアクションを実行して、同じViewにリダイレクトします。

public MyController 
{ 
    [AcceptVerbs (HttpVerbs.Get)] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [AcceptVerbs (HttpVerbs.Post)] 
    public ActionResult Index (ClientSearch data, int? page) 
    { 
     // Process form post 

     return RedirectToAction ("Index"); 
    } 
} 
4

ない私は完全にあなたの質問を理解していますが、別のActionResultsで同じビューを使用したい場合は、以下のことができます。

public ActionResult One() { 
    // do stuff 
    return View("Index", myModel); 
} 


public ActionResult Two() { 
    // do stuff 
    return View("Index", myOtherModel); // Same View 
} 

はちょうどあなたが見るために同じTypeを提供している作ります(ViewにTypeが必要な場合)。

関連する問題