我在驗證我的應用程序時遇到了一些麻煩。 比方說,我有以下型號:ASP.Net MVC3條件驗證
public class Company
{
public int id { get; set; }
[Required]
public String Name { get; set; }
public String Location { get; set; }
public List<Contacts> Contacts { get; set; }
}
public class Contact
{
public int id { get; set; }
[Required]
public String Name { get; set; }
[DataType(DataType.EmailAddress)]
public String Email { get; set; }
public String Telephone { get; set; }
public String Mobile { get; set; }
}
現在在我的公司創建視圖我有兩個按鈕,一個將聯繫人添加到該公司,而另一個以創建新公司。 我發現在我的控制器這樣使用了哪個按鈕(兩個按鈕被命名爲「按鈕」):
[HttpPost]
public ActionResult Create(String button, FormCollection collection)
{
if(button == "AddContact")
{
AddContact(collection);
}
else
{
CreateCompany(collection);
}
}
雖然它正在創建一個代表公司,它正在創建存儲在會話(對象示例HttpContext.Session [「公司」] =公司;)
現在的問題是,如果,例如,我嘗試添加一個聯繫人沒有先指定公司名稱,我得到驗證錯誤,因爲公司名稱是這是不應該發生的,因爲用戶可能希望在添加公司信息之前添加聯繫人。或者如果我嘗試保存公司,我也會得到驗證錯誤,因爲通常在保存「添加聯繫人」表單時爲空,這意味着聯繫人姓名(也是必需的)未指定。
我想知道的是,如果僅在使用addContact按鈕時驗證聯繫人屬性,並且僅在按下createCompany按鈕時驗證公司屬性。
現在我只需要做這個服務端,但如果任何人有解決方案來做這個客戶端,以及我將不勝感激的幫助。
感謝您的回答,但MSDN或谷歌都沒有幫助。您能否提供一個關於如何使用這種方法的例子? – 2011-05-12 10:07:39