簡體   English   中英

根據所選條件驗證MVC3視圖模型對象

[英]Validating a MVC3 viewmodel object based on a selected condition

我想對我創建的視圖模型進行一些條件驗證。

public class MyViewModel
{
    public int SelectedItem { get; set; }

    public Item Item1 { get; set; }
    public DetailedItem Item2 { get; set; }

}

public class Item
{
    [Required]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }
}

public class DetailedItem
{
    [Required]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public string Description { get; set; }
}

我有一個綁定到SelectedItem的單選按鈕,該按鈕通過客戶端顯示或隱藏綁定到Item&DetailItem的局部視圖。

在表單發布中,我想驗證所選模型,但如何驗證。 如果我要使用上面的代碼並執行

ModelState.IsValid

僅完成一個局部視圖中的一個,由於另一個模態不包含必填字段,我將得到IsValid = false。

有沒有辦法只驗證所選模型?

任何幫助都是極好的!

是的,ModelState是一個Dictionary類,您可以使用Key從其中刪除一個項目。

例如,

ModelState.Remove("Item1");

然后撥打

ModelState.IsValid

將忽略該條目的要求。

這里是文檔的鏈接,並且還討論了是否應該在ViewModels中發生這種情況。

暫無
暫無

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

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