將自定義屬性添加到側面ViewDataDictionary的最實用方法是什麼?CustomViewData的最佳途徑?
讓我們假設一個簡單的例子:
public ActionResult Index()
{
// ViewData["Title"] = "Home";
ViewData.Title = "Home";
return View();
}
,想到的第一件事是在應用基礎控制器的自定義類,並使用「新」:
public class CustomDataDictionary : ViewDataDictionary
{
public string Title { get; set; }
}
public class ApplicationController : Controller
{
public new CustomDataDictionary ViewData { get; set;}
}
我假設您還必須使用相同的屬性創建相應的CustomViewPage以在視圖中使用自定義視圖數據字典。
想到的第二件事是創建一個ViewDataDictionaryExtensions類。
第三,使用「查看模型」。 View Model的牛肉總是創建一個,然後將它傳遞給View,好像在控制器代碼中一遍又一遍地重複自己,至少與之前的兩個選項相比。
真正的目標是每個應用程序可能有一組核心的ViewData的有意義的所有應用目的性的。我傾向於迴避依賴字典密鑰,並且最好讓其他開發人員擁有真正的屬性來依靠它來知道要設置的數據。另外,鑰匙很容易被拼錯。
以上三種方法都可以完成工作。別人做了什麼?
」這就是常數。「 聽起來不錯,直到你有大約50人。當你開始使用常量作爲散列鍵名時,它會變得非常快。 擴展將是gret ...如果只有我們有擴展屬性。獲取/設置ala SmartBag不會告訴不熟悉的編碼人員對解決問題的很多瞭解。 控制器方法可以,但你暗示他們是控制器的屬性,這是不正確的。他們是action viewdata的屬性。 – claco 2009-04-17 15:24:05