2011-08-16 15 views
0

ViewModelクラスを作成しようとしています。私は "ViewModels"フォルダにクラスを作成した後。マイリストタイプ宣言は認識されません。私の質問とコードは以下の通りです:MVC3 ViewModel名前空間質問

  1. ViewModelクラスを作成する特別な方法はありますか?
  2. ViewModelsはMVC3の機能ではなく、方法論ですか?

誰かが私が

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MvcApplication8.ViewModels 
{ 
     //compiler does not recongize List class or SelectListitem 
     private List<SelectListItem> _products = new List<SelectListItem>(); 

     //compiler does not recongize List class 
     public List<SelectListItem> products 
     { 
      get { return _products; } 
     } 

} 
+0

「ViewModels」フォルダは聞いたことがなく、プロジェクトのルートの下にある「モデル」だけです。サンプルコードではクラス定義が表示されません。 –

答えて

4

-P感謝を逃しているものを教えてくださいすることができのViewModelクラスを作成するためのいくつかの特別な方法はありますか?

いいえのように、他のクラスを作成するように作成します。 の慣習は、フォルダのに配置することです。

ViewModelsは、MVC3の機能ではなく、方法論ですか?

類型。それらはフレームワーク自体の機能ではありませんが、Viewのシンプルでクリーンな状態を保ち、モデルのバインドを単純化するための推奨事項です。

は、誰かが私が感謝

あなたクラス宣言がありますが見逃しているものを私に教えてくださいことはできますか?

namespace MvcApplication8.ViewModels 
{ 
    public class ThisIsTheClassNameAndMustGoFirst 
2
  1. カミソリを使用して、新しい空のMVC 3プロジェクトを作成します。
  2. はすなわち、モデルフォルダの下のクラス定義を追加します。

    namespace MvcApplication1.Models 
    { 
        public class WhateverNameYouWantModel 
        { 
         public string Foo { get; set; } 
         public string Bar { get; set; } 
        } 
    } 
    
  3. 右のコントローラ]フォルダをクリックして、新しいコントローラを追加します。名前は "Controller"で終わらなければなりません。アクションメソッドを追加するためのチェックオプションを気にしないでください。コントローラは次のようになります。

    using System.Web.Mvc; 
    using MvcApplication1.Models; 
    
    namespace MvcApplication1.Controllers 
    { 
        public class HelloController : Controller 
        { 
         public ActionResult Index() 
         { 
          return View(new WhateverNameYouWantModel()); 
         } 
        } 
    } 
    
  4. 上記のIndex()シグネチャを右クリックし、[Add View]を選択します。何もチェックされていないことを確認してください。ビュー名はアクション名 "Index"と一致し、Razorはエンジンです。上部のモデルタイプを追加します。

    @model MvcApplication1.Models.WhateverNameYouWantModel 
    @{ 
        Layout = null; 
    } 
    <!DOCTYPE html> 
    <html> 
    <head> 
        <title>Index</title> 
    </head> 
    <body> 
        <div>hello world!</div> 
    </body> 
    </html> 
    
  5. ブラウザはhttp://localhost:xxxxに開きますスタートアッププロジェクトは、F5キーを押し、などのMVCプロジェクトは、今あなたがでhttp://localhost:xxxx/Hello/Index

を指すようにする必要があります設定asp.net mvcの名前は、ビュー、アクション、コントローラ間のすべてです。そのすべての大会、それに固執する必要はありませんが、あなたがしない場合は、いくつかの余分な配管を行う必要があるだろう。