Tag: custom model binder

MVC日期时间模型绑定

我在我的应用程序中使用2个kendo日期选择器: Start Date: @(Html.Kendo().DatePickerFor(m=>m.StartDate)) End Date: @(Html.Kendo().DatePickerFor(m=>m.EndDate)) Show 单击该按钮时,我会读取这些日期选择器客户端的值,并对API控制器进行POST。 我遇到的问题有时是DateTime参数被错误地解析,我使用的是en-GB文化(在我的web.config中指定),但是给定日期为2014年3月1日(3月1日),当值为由模型绑定器处理,它被解释为03/01/2014(1月3日)。 我的javascript如下: function getGraphData() { var startDatePicker = $(“#StartDate”).data(“kendoDatePicker”); var endDatePicker = $(“#EndDate”).data(“kendoDatePicker”); var param = { StartDate: kendo.toString(startDatePicker.value().toLocaleDateString(), “dd/MM/yyyy”), EndDate: kendo.toString(endDatePicker.value().toLocaleDateString(), “dd/MM/yyyy”) }; // Do post here } 我的模型如下: public class DateRangeParam { #region Constructors and Destructors /// /// Initializes a new instance of the […]

在Asp.Net Web API中实现自定义模型绑定器时出错

我坚持这个非常奇怪的问题。 我有一个名为AttendanceController的API控制器派生自APIControllerFA ,它来自ApiController 这是代码 public class AttendanceController : ApiControllerFA { public HttpResponseMessage PostAttendance([ModelBinder(typeof(AttendanceRegistrationModelBinder))]AttendanceRegistrationModel model) { //checking model state for errors //throw new Exception(“Just to throw an error “); ……….. 从PostAttendance方法可以看出,我有一个名为AttendenceRegistrationModelBinder的自定义ModelBinder ,这是代码 public class AttendanceRegistrationModelBinder : DefaultModelBinder { protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, System.ComponentModel.PropertyDescriptor propertyDescriptor) { if (propertyDescriptor.Name == “formJson”) { string val = […]

GET请求上ASP.NET MVC的自定义模型Binder

我已经创建了一个自定义的MVC Model Binder,可以为进入服务器的每个HttpPost调用它。 但是没有调用HttpGet请求。 我应该在GET期间调用自定义模型绑定器吗? 如果是这样,我错过了什么? 如果没有,我如何编写处理来自GET请求的QueryString自定义代码? 这是我的实施…… public class CustomModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // This only gets called for POST requests. But I need this code for GET requests. } } Global.asax中 protected void Application_Start() { ModelBinders.Binders.DefaultBinder = new CustomModelBinder(); //… } 我已经研究过这些解决方案,但它们并不能满足我的需求: 通过TempData复杂类型 使用默认绑定器构建复杂类型( ?Name=John&Surname=Doe […]