最簡單的情況,我爲任務列表創建了「創建視圖」,並且我想讓用戶通過相關表格選擇「類別」一個下拉列表。關於生成ASP.NET MVC的問題「創建」視圖
我應該
- 創建一個包含任務和一個IEnumerable一個自定義模式?
- Instanciate從「創建任務視圖」的類別控制器,並通過在類別控制器上的方法綁定DDL?
- 我沒有想到的另一種選擇?
哪種方法最適合MVC設計模式?你使用哪一個,更重要的是爲什麼?
最簡單的情況,我爲任務列表創建了「創建視圖」,並且我想讓用戶通過相關表格選擇「類別」一個下拉列表。關於生成ASP.NET MVC的問題「創建」視圖
我應該
哪種方法最適合MVC設計模式?你使用哪一個,更重要的是爲什麼?
1是最「正確」的方式。
2是徹頭徹尾的邪惡,你在webforms世界的背影,拋棄了關注的清晰分離。
3是不必要的,因爲我不知道你有多少收穫,而不是1
你可以做兩件事情:
一)快速破解
public ActionResult Create() {
ViewData["myList"] = new SelectList(listOfCategories, "Name","CategoryId");
return View()
}
Create.aspx
...
<%= Html.DropDown("categoryId", ViewData["myList"] as SelectList,"-");
...
b )創建一個ViewDataModel。
public class CreateProductViewData
{
public Product product { get; private set; };
public SelectList Categories { get; private set; }
public CreateProductViewData(Product p) {
product = p;
Categories = new SelectList(listOfCategories, "Name","CategoryId");
}
}
public ActionResult Create()
{
Product p = new Product() { name="New Product..." } ;
return View(new CreateProductViewData(p));
}
in Create.aspx
...Inherits="System.Web.Mvc.ViewPage<CreateProductViewData>" %>
..
..
<%= Html.DropDown("CategoryId", Model.Categories, "-");
我一直都用B方法,因爲它移動了很多的代碼移出控制器,並進入「有什麼需要顯示此頁」 -code,而不會弄亂了「如何顯示數據」碼。
所以在效果我有作用
通常,我可以重複使用ViewDataModel編輯和創建。