【发布时间】:2015-02-14 06:47:15
【问题描述】:
我在我的网站中有两个角色:客户和供应商
现在当供应商进行注册时,我提供了从下拉列表控件中选择类别的选项。类别可以如下:水管工、电气、裁缝、木匠 等等……
此类别加载到供应商可以从中选择适当类别的下拉列表中。
[Required(ErrorMessage = "Please Select City")]
[DataMember]
public int CategoryId { get; set; }
我在我的注册页面上为供应商和客户提供了单选按钮选项。因此,如果用户选择供应商,那么我将显示类别下拉列表,如果用户选择客户,那么我不会显示此下拉列表。
所以当用户提交表单时,这就是我在控制器上所做的事情:
[HttpPost]
public ActionResult Registration(UserDetailsModel _userDetails)
{
if(ModelState.IsValid)
{
}
else
{
//Error..
}
}
我的模特:
public class UserDetailsModel
{
[DataMember]
public int Id { get; set; }
[Required(ErrorMessage = "Please Enter Name")]
[DataMember]
public string Fullname { get; set; }
[Required(ErrorMessage = "Please Select City")]
[DataMember]
public int CategoryId { get; set; }
}
所以问题是当用户选择客户选项时,我将 modelstate 设为 false,因为在客户的情况下 categoryid 将为空(因为我没有向客户显示类别下拉列表)。
那么我该如何解决呢?
任何帮助....
【问题讨论】:
-
您可以查看使用 foolproof
[RequiredIf]属性或其他允许基于另一个属性进行条件验证的属性之一。 -
但是我如何为客户或供应商检查这个以及在哪里??
-
您甚至没有向您展示模型或与供应商/客户关联的属性是什么,但
[RequiredIf]有多种版本,例如如果它的bool IsVendor,那么您可以使用@987654328 @ 只有在您选择“供应商”时才会添加错误 - 您需要阅读文档并查看一些示例。 -
请查看我的已编辑问题。我只有 1 个模型供客户和供应商使用。
-
您尚未显示用于确定用户是供应商还是客户(用于呈现单选按钮的那个)的属性
标签: c# asp.net-mvc asp.net-mvc-4