首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

绑定时的格式化日期(ASP.NET MVC)

在ASP.NET MVC中,绑定时的格式化日期通常是通过数据注解(Data Annotations)或模型绑定(Model Binding)来实现的。以下是一个简单的示例,展示了如何在ASP.NET MVC中实现绑定时的格式化日期:

  1. 首先,在Model类中定义一个日期属性:
代码语言:csharp
复制
public class Person
{
    public int Id { get; set; }

    [Display(Name = "Birth Date")]
    [DataType(DataType.Date)]
    public DateTime BirthDate { get; set; }
}
  1. 在View中,使用Html.EditorFor()方法来渲染日期输入框:
代码语言:html
复制
@Html.EditorFor(model => model.BirthDate)
  1. 在Model类中添加一个自定义的模型绑定器,用于处理日期格式:
代码语言:csharp
复制
using System.Globalization;
using System.Web.Mvc;

public class DateTimeModelBinder : DefaultModelBinder
{
    public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var displayFormat = bindingContext.ModelMetadata.DisplayFormatString;
        var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);

        if (value != null && !string.IsNullOrEmpty(value.AttemptedValue))
        {
            DateTime date;
            if (DateTime.TryParseExact(value.AttemptedValue, displayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
            {
                return date;
            }
        }

        return base.BindModel(controllerContext, bindingContext);
    }
}
  1. 在Global.asax文件中注册自定义模型绑定器:
代码语言:csharp
复制
using System.Web.Mvc;

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        ModelBinders.Binders.Add(typeof(DateTime), new DateTimeModelBinder());
    }
}

这样,在ASP.NET MVC中绑定时的格式化日期就实现了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券