0
如何重複使用我聲明的模型類型?在視圖的頂部有申報如何從視圖中的視圖重新使用模型類型?
@model mySpace.viewModels.viewModel
我想要做的就是後來在頁面上,這樣做
@for(viewModel vM in ViewBag.viewModels)
{
//some foo bar
}
如何重複使用我聲明的模型類型?在視圖的頂部有申報如何從視圖中的視圖重新使用模型類型?
@model mySpace.viewModels.viewModel
我想要做的就是後來在頁面上,這樣做
@for(viewModel vM in ViewBag.viewModels)
{
//some foo bar
}
如果你已經有了一個強類型的視圖,你真的甚至不應該考慮ViewBag/ViewData。一旦你強類型視圖視圖模型所有你必須在這個觀點做的是使用該視圖模型的屬性,就像這樣:
@foreach (viewModel vm in Model.SomeSubModels)
{
//some foo bar
}
,甚至更好,避免在您的看法可怕foreach
循環(如果你需要編輯一些屬性),你可以使用使用編輯器模板:
@Html.EditorFor(x => x.SomeSubModels)
或使用顯示器模板(如果你只想要顯示給用戶的視圖模型屬性的值):
@Html.DisplayFor(x => x.SomeSubModels)
因此,這裏的一對夫婦的基本規則設計一個ASP.NET MVC應用程序(按順序)時應遵循:
規則1是真正的基礎和最重要的。如果你不尊重這個規則,你真的沒有正確地做ASP.NET MVC。
我有一個列出項目的視圖,也允許創建項目。當用戶希望創建一個項目時,我不想回發整個列表,在這種情況下,我選擇不使用強類型視圖模型,因爲我不想僅僅重新發布整個列表添加一個項目。 – 2012-02-27 22:49:08
@TravisJ,絕對沒有你不應該在ASP.NET MVC中使用強類型視圖模型的情況,你應該選擇使用ViewBag/ViewCrap。查看模型是要走的路。他們會解決你所有的問題。只是不要害怕給你的項目添加新的類。 – 2012-02-27 22:50:05
如果用'[httppost]'裝飾的控制器接受視圖模型,並且視圖模型被傳遞到視圖中並顯示完整列表,那麼不會發布該列表? – 2012-02-27 22:50:37