我有一个客户将输入某些数据的页面,但是,在其中一个字段中,输入应该只以'SWG ...'或'MH ......'开头。 。除此之外,SWG应该包含7个数字,MH应该包含5.
我对此很新,所以任何帮助都将不胜感激。我的代码是下面的。
public partial class VehicleRegistration
{
[Required]
[Display(Name = "User Email:")]
public string User_Email { get; set; }
[Required] //This is the section where input should only begin with MH or SWG
[Display(Name = "Serial No:")]
public string Serial_No { get; set; }
[Required]
[StringLength(16, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 16)]
[Display(Name = "Control Panel M Number:")]
public string IMEI_No { get; set; }
}
这里的最后一个字段是我用来设置输入时间的内容。 我还有一个cshtml页面,其中包含以下与
相关的代码<div class="form-group">
@Html.LabelFor(model => model.Serial_No, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@Html.EditorFor(model => model.Serial_No, new { htmlAttributes = new { @class = "form-control", @placeholder = "Required" } })
@Html.ValidationMessageFor(model => model.Serial_No, "", new { @class = "text-danger" })
</div>
</div>
答案 0 :(得分:4)
您正在寻找名为Regular Expressions或Regex的系统。
在您的情况下,解决方案将是
if(Regex.IsMatch(myText, @"^SWG\d{7}$|^MH\d{5}$"))
{
//myText is valid
}
在MVC中,该字段看起来像
[Required]
[RegularExpression(@"^SWG\d{7}$|^MH\d{5}$", ErrorMessage="Serial number must be SWG####### or MH#####")]
[Display(Name = "Serial No:")]
public string Serial_No { get; set; }
您可以看到正则表达式如何运作的细分here。
答案 1 :(得分:1)
您可以在MVC中添加正则表达式验证,如下所示:
[RegularExpression("SWG\d{7}|MH\d{5}", ErrorMessage = "Invalid input")]
[Required] //This is the section where input should only begin with MH or SWG
[Display(Name = "Serial No:")]
public string Serial_No { get; set; }
但是,如果您需要更复杂的验证逻辑,请尝试详细了解远程验证here。