gpt4 book ai didi

c# - 日期验证 - StartDate、EndDate MVC

转载 作者:行者123 更新时间:2023-11-30 18:06:55 25 4
gpt4 key购买 nike

我需要对 StartDate 和 EndDate 进行验证

验证:

  • StartDate 的设置值必须小于或等于 Endate。
  • EndDate 必须设置为大于或等于 startdate。

到目前为止我的代码:

对象:

    [DisplayName("Effective Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime EffectiveStartDate { get; set; }

[DisplayName("Effective End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime EffectiveEndDate { get; set; }

查看:

   </tr>  
<tr>
<td class="lables"><%= Html.LabelFor(model => model.EffectiveEndDate)%></td>
<td class="data" id = "endDate"><%= Html.EditorFor(model => model.EffectiveEndDate)%>
<%= Html.ValidationMessageFor(model => model.EffectiveEndDate)%></td>
</tr>
<tr>
<td class="lables"><%= Html.LabelFor(model => model.ErrorCheckEnabled)%></td>
<td class="data" ><%= Html.TextAreaFor(model => model.ErrorCheckEnabled)%>
<%= Html.ValidationMessageFor(model => model.EffectiveEndDate)%></td>
</tr>

我应该如何进行验证。我应该在客户网站上做吗

$("#frm").validate

[或]

???

最佳答案

必须要说的是:您应该始终进行服务器端验证,因为用户可以关闭 javascript,因此您的验证将不会应用。但我建议也进行客户端验证,这样用户体验会更好。服务器端和客户端验证可以很容易地同时存在。

对于服务器端,您可以通过从 ValidationAttribute 类派生来轻松创建自己的验证属性。看这个例子:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class EndDateAttribute : ValidationAttribute
{
public EndDateAttribute(DateTime endDate)
{
EndDate = endDate;
}

public DateTime EndDate { get; set; }

public override bool IsValid(object value)
{
if (value == null)
return false;

DateTime val;
try
{
val = (DateTime)value;
}
catch (InvalidCastException)
{
return false;
}

if (val >= EndDate)
return false;

return true;
}

}

您可能会想出如何制作 StartDate。

更新:使用它非常简单。您只需将它作为任何其他(验证)属性应用于您的属性。例如

[DisplayName("Effective Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
[StartDate(DateTime.Now)]
public DateTime EffectiveStartDate { get; set; }

[DisplayName("Effective End Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
[EndDate(new DateTime(2011, 9, 24)]
public DateTime EffectiveEndDate { get; set; }

关于c# - 日期验证 - StartDate、EndDate MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com