ASP.NET MVC5的學習知識點

  • 強類型模型和@model關鍵字

@model MvcMovie.Models.Moviehtml

經過包括@model語句在視圖模板文件的頂部,能夠指定視圖指望的對象的類型。 建立電影控制器時,Visual Studio 會自動在 Details.cshtml 文件的頂端包括如下 @model 語句:web

@model MvcMovie.Models.Movie數據庫

此 @model 指令使你可以使用強類型的 Model 對象訪問控制器傳遞給視圖的電影。 例如,在Details.cshtml模板,代碼將傳遞到每一個電影字段DisplayNameForDisplayFor HTML 幫助器與強類型化Model對象。 CreateEdit方法和視圖模板還將傳遞電影模型對象。安全

index.cshtml文件的頂部代碼有@model IEnumerable<MvcMovie.Models.Movie>架構

@model指令使你可以訪問控制器傳遞給視圖使用的電影列表Model強類型化的對象。 例如,在Index.cshtml模板,該代碼循環訪問電影經過這樣作foreach語句經過強類型化Model對象:mvc

代碼略。。。。。。。。。。。。。。。。。。。。。。。框架

返回的DbSet<Movie> Movies裏的數據,ui

  這裏的Model應該是以下解釋,被關聯的對象!!!!具體lambda表達式的參數問題沒有搞懂spa

 

 

 @model,有如下參考:code

Razor語句都是以@符號開始的。每一個視圖都有本身的Model屬性(經過@Model調用)。上面這句代碼的意思是將本視圖的Model屬性的類型指向MvcApplication1.Models.Product類型,這就實現了強類型。強類型的好處之一是類型安全,若是寫錯了Model對象的某個成員名,編譯器會報錯;另外一個好處是在VS中可使用VS中的代碼智能提示自動完成類型成員調用的代碼編寫。 固然這句代碼不要程序也能夠正常運行,只是給編寫代碼形成了必定的困難。

視圖中的Model屬性用於存放控制器(Controller)傳遞過來的model實例對象(本示例中ProductController經過「return View(myProduct)」傳遞給Index視圖),下面的代碼演示瞭如何調用該model對象:

 網址以下:http://www.javashuo.com/article/p-mtjhoauq-dk.html

  • 功能的擴展

在Movie的ReleaseDate屬性中加入如下代碼,

[Display(Name = "Release Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

生成以下效果

 

【搜索功能】

第一步、在MovieController中更新index,以下

public ActionResult Index(string searchString)  {               

  var movies = from m in db.Movies                

         select m; 

      if (!String.IsNullOrEmpty(searchString))          

    movies = movies.Where(s => s.Title.Contains(searchString));   

      }     

    return View(movies); 

}

這就實現了查詢功能。

UI以下:

以後還有按流派查詢。

【更改屬性】

已更新Movie應用程序中的 model 類如今與不一樣的架構Movie現有數據庫表

 

本教程使用 Code First 遷移。

更新 Seed 方法,使它向新列提供值。 打開 Migrations\Configuration.cs 文件並將評級字段添加到每一個電影對象。

生成解決方案,而後打開程序包管理器控制檯窗口並輸入如下命令:

add-migration Rating

add-migration命令會通知遷移框架以檢查當前電影模型與當前的電影數據庫架構並建立必要的代碼以將數據庫遷移到新模型。 名稱評級是任意參數並用於命名遷移文件。 最好使用遷移步驟有意義的名稱。

 生成新的解決方案後,執行update-database

相關文章
相關標籤/搜索