我在验证我的应用程序时遇到了一些麻烦。 比方说,我有以下型号: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