看到這標題有點怪,一般情況之下,我們很容易在視圖與部分視圖中使用模型(model),但是如果想在布局頁_Layout.cshtml頁中使用模型(model),按照普通方式也許沒有達到預期的效果,在實現時有些情況需要注意的。
下面先按原先我們的設計,在控控制器創建三個視圖操作(Action):
創建一個布局頁_May15.cshtml,然后上面的三個視圖均引用此布局頁.
現在我們根據控制器的Action分別創建三個視圖,Index.cshtml:
OK,現在我們回至_May15.cshtml寫model代碼,添加下面標記1至標記3:
現在我們分別瀏覽視圖Index.cshtml,PageA.cshtml和pageB.cshtml:
為什么視圖Index.cshtml能正常顯示,而PageA與PageB不能呢? 回過頭去看控制器,只有Index控制器有返回return View(xxx):
如果三個控制器使用相同的代碼,肯定是沒有問題,對吧:
但是實際上,我們不能這樣去做,因為不同的視圖,就是想表現不同的內容。這就是我們需要解決的地方。
下面是Insus.NET解決的方法,控制器中把三個操作改為:
完成了,看到上面的代碼了吧,就是這兩行代碼。其它視圖均無需修改任何,它原本是怎樣寫,就是怎樣寫。
現在我們瀏覽三個視圖,肯是沒有問題的: