2012-03-17 33 views
0

我有一個模型就像如下:由ASP.NET MVC中篩選數據後某些屬性值3

public class MyModel { 

    [Required] 
    public string Name { get; set; } 
    public string Family { get; set; } 
    [Required] 
    public int Number { get; set; } 
} 

因此,例如,在編輯視圖我有3個Editorfor()對象和我感興趣的篩選後這個頁面的數據,實際上我想忽略Number字段,只想發帖NameFamily另外我需要Number的驗證是有效的,一種方法是我從MyModel刪除Number屬性,並在手動定義和寫入所有驗證腳本通過自己的,但我很有興趣知道MVC中有沒有更簡單的方法。有人有什麼主意嗎?

+1

爲什麼要忽略的東西需要的?如果您真的想忽略它,請不要在發佈時使用該媒體資源。 – MikeSW 2012-03-17 07:18:55

回答

0

未在視圖中填充的任何值都不會發布到控制器。但是,如果沒有填充[Required]的字段,則ViewModel.isValid將爲假。

1

手動控制所有驗證和模型綁定方式太複雜且容易出錯。您應該使用的ViewModels

public class SomeSpecificViewModel 
{ 
    [Required] 
    public string Name { get; set; } 
    public string Family { get; set; } 
} 

public ActionResult SomeSpecificAction(SomeSpecificViewModel model) 
{ 
    //... 
} 

現在西港島線MVC僅驗證名稱和家庭

+0

+1 - 爲每個視圖使用單獨的強類型ViewModels,否則會冒潛在的安全漏洞和數據丟失問題。 – Betty 2012-03-17 08:54:37