我已閱讀MVC的多次專家說,如果我使用的SelectList,這是最好的在我的模型中定義IEnumerable<SelectList>
。
例如,在這個question。
考慮一個簡單的例子:如何在沒有模型的情況下在View中使用SelectList?
public class Car()
{
public string MyBrand { get; set; }
public IEnumerable<SelectListItem> CarBrands { get; set; } // Sorry, mistyped, it shoudl be SelectListItem rather than CarBrand
}
在控制器,人們會做:
public ActionResult Index()
{
var c = new Car
{
CarBrands = new List<CarBrand>
{
// And here goes all the options..
}
}
return View(c);
}
然而,從Pro ASP.NET MVC,我學會了創建新實例的這種方式。
public ActionResult Create() // Get
{
return View()
}
[HttpPost]
public ActionResult Create(Car c)
{
if(ModelState.IsValid) // Then add it to database
}
我的問題是:我應該如何通過SelectList
查看?由於在Get方法中不存在模型,因此似乎無法做到這一點。
我當然可以做到這一點使用ViewBag
,但我被告知要避免使用ViewBag
,因爲它會導致問題。我想知道我有什麼選擇。
如果您想將數據從控制器傳遞到視圖意味着您應該使用mo del或ViewBag也可以使用ViewData。沒有這個你可以做靜態視圖。 – Chandu