2011-12-29 3 views
0

こんにちは。私はAsp.netソフトウェア開発者です。私はasp.net mvcを学ぼうとします。しかし、私は奇妙なことに直面する。私のコントローラーのメソッド名は、ビュー名またはリバースと同じでなければなりません。これはおかしい!私の_Layoutを見てください:アクションごとのビューメソッドを作成するのはなぜですか?

<nav> 
      <ul id="menu"> 
       <li>@Html.ActionLink("Home", "Index", "Home")</li> 
       <li>@Html.ActionLink("About", "About", "Home")</li> 
       <li>@Html.ActionLink("Article", "GetAll", "Article")</li> 
      </ul> 
     </nav> 

記事ビューページ必要GetAllメソッドもGetAll.cshtmlが必要です。私の望み:私のビューページ名はコントローラクラスのメソッド名とは独立していなければなりません。マイコントローラー: enter image description here

私のソリューション:

enter image description here

私はAsp.netのMVCは奇妙だと思います。私は嫌いなコントローラのアクション名の名前はビューのページ名と同じでなければならないのですか?それを作る方法?私は、ビュー名は任意の名前から独立していなければならないと思う。

答えて

6

あなたの名前はデフォルトであなたのアクション名と同じでなければならないということは間違いない。しかし、これは簡単に変更できます。あなただけのコントローラーのViewメソッドのthis overloadと呼ばれ、あなたが好きなビュー名を渡すことができます。

return View("SomeViewName",articles); 
+0

+1を。最初に回答しました – Rondel

0

私は2件のコメントがあります

  • GETALL()MVCでは、通常のインデックス(と呼ばれることになりますあなたのメソッドの何かに名前を付け、別の名前でビューを返すことができ
  • 記事インデックス)、のように

    public ActionMethod GetAll() 
    { 
        return View("Index"); 
    } 
    
1

メソッドの名前と同じである必要はありません。デフォルトでMVC3は、同じ名前でViewを探しますが、あなたは任意の名前でViewを作成し、そのビュー返すようにMVCを伝えることができます。

return View("MyView",articles); 
関連する問題