C# 如何在MVC中使用复选框验证文本框?
我有一个C# 如何在MVC中使用复选框验证文本框?,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有一个视图模型: public string Address { get; set; } [DisplayName("Do you want Reward?")] public bool IsReward { get; set; } [Range(0,int.MaxValue,ErrorMessage="Please enter integer number")] [DisplayName("Reward")] public int Reward { g
视图模型
:
public string Address { get; set; }
[DisplayName("Do you want Reward?")]
public bool IsReward { get; set; }
[Range(0,int.MaxValue,ErrorMessage="Please enter integer number")]
[DisplayName("Reward")]
public int Reward { get; set; }
默认情况下,在查看iseward
属性中未选中,当用户选中iseward
并发布视图时,如果奖励
文本框为空,则向用户显示错误消息“请输入奖励”
如何使用
DataAnnotation
验证它?请尝试以下代码。如果iseward
为真且Reward
文本框值为零,它将显示错误消息
[RewardValidation]
public class RewardModel
{
public string Address { get; set; }
[DisplayName("Do you want Reward ؟")]
public bool IsReward { get; set; }
[Range(0, int.MaxValue, ErrorMessage = "Please enter integer number")]
[DisplayName("Reward")]
public int Reward { get; set; }
}
public class RewardValidation : ValidationAttribute
{
public override bool IsValid(object value)
{
RewardModel app = value as RewardModel;
if (app.IsReward && app.Reward==0)
{
ErrorMessage = "please enter Reward";
return false;
}
return true;
}
}
并包含
@Html.ValidationSummary(true)
以显示消息您可以编写自己的验证规则。没有具体的关联,但这是一个实现示例:另一个简单的方法是在控制器中检查它并调用AddModelError(“奖励”,“请输入奖励”);您可以查看如何使用[RequiredIfTrue]
或应用于奖励
属性的类似验证属性-[RequiredIfTrue(“iseward”,ErrorMessage=“please enter Reward”)]public int-Reward{get;set;}
,这将提供客户端和服务器端验证。如果你想写你自己的,这是一个很好的指南,它显示了奖励字段是必需的。而不是“请输入奖励”。有什么问题吗?@osmanRahimi,根据if(app.iseward&&app.Reward==0)条件,如果奖励为0(零),则只有它会显示消息“请输入奖励”奖励字段是必需的,因为奖励数据类型是int。如果是int?然后它将永远不会显示“奖励字段是必需的”消息