我目前在asp.net mvc中使用ModelStateDictionary來保存驗證錯誤,然後傳回給用戶。能夠通過ModelState.IsValid檢查整個模型是否有效。但是,我正在處理的當前應用程序需要能夠報告警告。這些並不重要,因此表單內容仍可以保存,但應該向用戶顯示,以便可以選擇採取措施。ASP.NET MVC中的模型警告
我一直在尋找通過框架,看看是否有任何明顯的地方來擴大它,讓我做到這一點。我在想另一個帶有警告的字典和一個稱爲模型警告的模型錯誤的子類。我不知道如何讓框架在視圖中使用我的新容器類等,但我仍然想要所有現有的錯誤的東西工作。
如果有人嘗試過類似的東西或有任何想法,我會很感激他們的意見。
更新:
我得儘可能延長的ViewDataDictionary添加一些警告
public class AetherViewDataDictionary : ViewDataDictionary
{
public AetherViewDataDictionary()
{
ModelStateWarning = new ModelStateDictionary();
}
public AetherViewDataDictionary(object model) : base(model)
{
ModelStateWarning = new ModelStateDictionary();
}
public AetherViewDataDictionary(ViewDataDictionary viewDataDictionary) : base(viewDataDictionary)
{
ModelStateWarning = new ModelStateDictionary();
}
public ModelStateDictionary ModelStateWarning { get; private set; }
}
那我現在遇到的問題是,當我得到我的看法代碼,這只是爲了調試我正在失去一個事實,那就是我的新類型,所以當我嘗試拋棄它並訪問我的新字典時,我沒有快樂。
public partial class Index : ViewPage<PageViewData>
{
protected override void SetViewData(ViewDataDictionary viewData)
{
base.SetViewData(viewData);
}
}
它在這裏設置正確,但是當我檢查它的類型消失了。
編輯: 事實證明,這是一種愚蠢的做事方式,請參閱下面的答案。
什麼是AttemptedValue? – 2015-01-14 10:49:49