[AcceptVerbs(httpVerbs.Post)]public JsonResult GetGrIDCell(double longitude,double latitude){ var cell = new GrIDCellviewmodel { X = (int)Math.Round(longitude,0),Y = (int)Math.Round(latitude,0) }; return Json(cell);}
由于解析问题,模型绑定失败.
我认为最好将我的JavaScript设置为en-UK,并将其与我的MVC应用中的模型绑定相同.但我不知道该怎么做.
有什么建议?
public class DoubleModelBinder : IModelBinder{ /// <summary> /// Binds the value to the model. /// </summary> /// <param name="controllerContext">The current controller context.</param> /// <param name="bindingContext">The binding context.</param> /// <returns>The new model.</returns> public object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { var culture = GetUserCulture(controllerContext); string value = bindingContext.ValueProvIDer .GetValue(bindingContext.Modelname) .ConvertTo(typeof(string)) as string; double result = 0; double.TryParse(value,NumberStyles.Any,culture,out result); return result; } /// <summary> /// Gets the culture used for formatting,based on the user's input language. /// </summary> /// <param name="context">The controller context.</param> /// <returns>An instance of <see cref="CultureInfo" />.</returns> public CultureInfo GetUserCulture(ControllerContext context) { var request = context.httpContext.Request; if (request.UserLanguages == null || request.UserLanguages.Length == 0) return CultureInfo.CurrentUICulture; return new CultureInfo(request.UserLanguages[0]); }}
现在,我们在这里做的是建立我们自己的语言感知双解析器.当我们实现IModelBinder接口时,我们需要创建一个BindModel方法.这就是它的核心所在,但在我们解析任何东西之前,我们需要根据浏览器的语言获得IFormatProvIDer.因此,我们使用GetUserCulture方法尝试并准备好浏览器的语言.如果我们不能回归当前的文化.
当我们拥有它时,我们就能够解析价值.我们首先从ValueProvIDer中获取它(它实际上是许多值提供者的组合,例如来自Form集合,Request集合等),然后我们使用发现的IFormatProvIDer解析它,这是我们现在拥有的CultureInfo.
一旦你完成了它,将它添加到模型绑定器集合中是非常简单的;
ModelBinder.Binders[typeof(Double)] = new DoubleModelBinder();
试试看,看看是否有帮助.
总结以上是内存溢出为你收集整理的c# – 在asp.net-mvc中使用Modelbinding double的CultureInfo问题(2)全部内容,希望文章能够帮你解决c# – 在asp.net-mvc中使用Modelbinding double的CultureInfo问题(2)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)