我的項目中的所有控制器都從一個基本控制器繼承而來,該控制器擁有我的實體模型屬性。ASP.NET MVC:是否允許幫助程序獲取數據?
讓我說我有一個視圖,顯示世界上的城市,它可以選擇按國家過濾。國家過濾器是數據庫中國家的下拉列表。下拉列表的Html助手請求IEnumerable<SelectItem>
。
現在是確定的,如果我創建了一個HtmlHelper
,看起來像這樣:
public static IEnumerable<SelectListItem> GetCountries(HtmlHelper htmlHelper)
{
return (from c in ((BaseController) htmlHelper.ViewContext.Controller).Entities.Countries
orderby c.Name
select new SelectListItem() {Text = c.Name, Value = c.ID});
}
的問題是不是如果我是可以的,但如果它根據的MVC方式是確定做事。 (或者我應該將ViewData中的國家的集合放在控制器內嗎?)
但我怎麼得到我的ViewPage內的國家? 我的ViewPage中的主要項目是IEnumerable。所以我應該把國家集合放入ViewData(ViewData [「countries」])。 您的代碼建議您創建一個從原始ViewPage繼承並添加Entities屬性的新ViewPage(看起來像很多依賴項)。 –
Gidon
2009-05-19 07:17:16
您可以創建一個包含城市和國家的視圖模型。 – Morph 2009-05-19 07:28:39