簡體   English   中英

MVC定制非模型對象驗證?

[英]MVC Custom non model object validation?

我有一個特殊的場景,我需要驗證不是我的模型的對象並從中獲取所有ValidationResult對象。

所以我的控制器里面有這樣的東西...

public virtual ActionResult(MyObject postData)
{
    ICollection someCollection = DoSomething(postData);

    foreach(Thing t in someCollection)
    {
         // validate t and get any ValidationResult objects
         // put the validation results in the object property.
         // this call isn't real by the way
         t.ValidationResults = t.Validate();
    }
    ...
}

它不是我要驗證的模型,而是基於給定的后數據,我需要驗證集合,而驗證失敗的地方,我打算在集合中呈現失敗的對象。

有什么想法可以讓我想要的ValidationResult對象嗎?

您可以將ValidationResults存儲在ViewBag ,然后從那里渲染它們:

var list = new List<ValidationResult>();
foreach (Thing t in someCollection)
{
    t.ValidationResults = t.Validate();
    list.AddRange(t.ValidationResults);
}
ViewBag.ValidationResults = list;

現在,很多代碼都作了很多假設,因為您沒有提供很多信息。 但是,無論哪種方式,都可以將這些結果放入整體列表中並將其設置在ViewBag 然后,您可以在視圖中利用ViewBag

@foreach (ValidationResult r in ViewBag.ValidationResults)
{
   <!-- render some HTML here  with the r variable -->
}

本文關於使用數據批注進行手動驗證的文章可能會為您提供所需的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM