通过 URL 将 DateTime 传递到控制器导致 ASP .NET MVC 3 中出现错误(区域性)

2024-01-09

我的应用程序在 web.config 中设置了 pt-BR 区域性(日期为 dd-mm-yyyy):

<globalization enableClientBasedCulture="false" requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="iso-8859-15" responseHeaderEncoding="utf-8" resourceProviderFactoryType="string" enableBestFitResponseEncoding="true" culture="pt-BR" uiCulture="pt-BR" />

在我的系统上创建的所有日期时间都是正确的格式,但我创建了一个像这样的控制器方法:

public ActionResult Test(DateTime date)
{
}

当日期采用 portuguese-br 格式时,直接在浏览器中调用该方法会传递 null,如下所示:

mysite/Test/?date=19/01/2012   => date = null in my controller

mysite/Test/?date=01/01/2012   => date is fine, but in US format (mm-dd-yyyy)

我该如何解决这个问题,以接受我的日期格式?


默认模型绑定器有一个不容易了解的陷阱,但一旦你知道了它,你就不会再犯同样的错误:

  • 当您使用 POST 请求时,默认模型绑定程序将使用您的区域性设置来解析日期。

  • 当您使用 GET 请求时,默认模型绑定器使用CultureInfo.InvariantCulture解析日期并忽略您当前的文化设置。

由于您使用 GET 请求并将日期作为查询字符串参数传递,因此在 url 中发送时应使用不变区域性格式对其进行格式化。将日期格式化为查询字符串参数的正确方法是yyyy-MM-dd.

你可以看看以下博客文章 http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx其中涉及更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 URL 将 DateTime 传递到控制器导致 ASP .NET MVC 3 中出现错误(区域性) 的相关文章

  • 如何在此 MSDN 示例中使用 Order By

    我正在尝试弄清楚如何使用这个 orderBy 参数 我不确定我应该传递什么 http www asp net mvc tutorials getting started with ef using mvc implementing the
  • 如何在没有 EF 的 ASP.NET MVC 中使用普通 sql?

    我有一个使用 linq to sql 的类 如何在 ASP NET MVC 3 中使用普通 sql 而不使用 EF 来实现相同的功能 public ActionResult Index var List from c in db OFFIC
  • MVC ASP.NET 或 Razor

    我对 MVC 很陌生 我对 Silver light WPF 和 MVVM 有相当多的了解 但对 MVC 知之甚少 我正在按照 Microsoft 网站上的主要教程进行操作http www asp net mvc tutorials get
  • 如何让CQRS适应项目? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我发现了一个新术语 名叫CQRS 命令查询职责分离 http martinfowler com bliki CQRS html其中指出 概念模型
  • ASP.NET MVC3:packages.config 的用途是什么?

    asp net MVC packages config 的用途是什么 我是否需要其中的项目来反映站点 应用程序中使用的内容 该文件由 NuGet 基础结构管理 它用于跟踪已安装的软件包及其各自的版本 如果您安装了 ASP NET MVC 3
  • DropDownListFor 具有带有 - 属性名称的自定义属性?

    问题 我需要创建一个像这样的下拉列表
  • 如何在 Asp.NET MVC 中使用 RedirectToAction() 传递多个对象?

    我想使用redirectToAction 方法传递多个对象 下面是我重定向到的操作结果 public ActionResult GetEmployees Models Department department Models Categor
  • 如何重定向到 $.AJAX 上的视图完整 - asp.net mvc 3

    好的 我想在验证检查后使用 AJAX 将用户重定向到周围视图 我该怎么做 请帮忙 这是我的 AJAX 代码 EX 我希望用户重定向到 Home Movies 控制器操作 如果未登录 则停留在同一页面
  • 使用 xamarin 和 c# 更改 android 上的cultureinfo

    我调用自定义方法来动态地将当前文化信息切换为法语 fr 像这样 但在调用该方法后 我的 Android 应用程序仍然使用默认区域性 en 但在调试模式下 区域性似乎没问题 我的文件夹没问题 我两者都有 并且字符串值已配置 文件夹 resou
  • Razor 与 ASPX 语法的比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近 我开始研究 MVC3 和 Razor 并阅读了几篇有关这些主题的文章 以更好地理解这个概念 我一直在读Scott Guthrie 的博客文
  • 默认 ASP.NET MVC 3 模型绑定器不绑定小数属性

    由于某种原因 当我将此 JSON 发送到操作时 BaseLoanAmount 5000 它应该绑定到一个具有名为 BaseLoanAmount 的十进制属性的模型 它不会绑定 它只是保持 0 但是如果我发送 BaseLoanAmount 5
  • 在 MVC3 视图中输入后显示度量单位的好方法是什么?

    我们开发了许多具有输入的系统 这些输入后面应该有一个相关的文本标签作为测量单位 例如平方米 立方米 吨 立方英尺等 我不需要做任何聪明的事情 比如测量单位之间的比例 只要确保它易于更新并且良好的实践即可 正在寻找相当自动的东西 这将计量单位
  • 使用 MVC3 RTM 进行 Ninject

    我已将 MVC3 从 RC2 升级到 RTM 我们使用的是 Ninject 2 1 0 76 但升级后就停止工作了 因此 我使用 NuGet 管理器获取最新的 Ninject Ninject MVC3 和 Ninject Web Mvc 库
  • 在 MVC 中处理错误、异常和 404 的最佳路由方法是什么?

    SO 和网络上有很多文章试图优雅地处理 404 和异常 从我读过的内容来看 最好的建议似乎是为 404 设置一条路线 如下所示 routes MapRoute 404 PageNotFound url new controller Erro
  • ASP.Net MVC 3、Ninject 和 Quartz.Net - 如何?

    我现在使用 Ninject 2 2 1 4 与我的 MVC3 一起使用 我成功配置了 Ninject 与它一起运行 但我不知道如何使 Ninject 在我的 MVC3 中与 Quartz Net 一起运行 有人可以帮忙吗 创建一个使用 Ni
  • UIHint 不使用 EditorTemplate

    我有一个这样的模型 public class MyModel ScaffoldColumn false public int CharityId get set UIHint Charities public SelectList Char
  • 为什么 DropDownListFor 无法识别编辑器模板中的选定值?

    我有以下名为 DropDown cshtml 的编辑器模板 这list部分工作正常 模板使用了一些我所做的巫毒来获得所需的SelectList from ViewData 控制器将视图模型中的所有选择列表放入ViewData 并且列表方面没
  • MVC3 中的角色管理

    我想向应用程序添加一项功能 以便只有管理员才能创建用户 并且他可以向用户提供对特定页面的访问权限 他可以创建角色 可以为用户提供不同的角色 我正在使用 Visual Studio 2010 并在 MVC3 中构建此应用程序 请给我建议来弥补
  • MVC3 TextBoxFor 带有编码文本

    有没有办法将 TextBoxFor 助手与编码文本一起使用 例如 当使用 MVC3 With Razor 视图引擎的以下帮助程序时 Html TextBoxFor model gt model Description 并且对 model D
  • RegisterGlobalFilters 的目的是什么?

    在 MVC3 中 我以这种方式启用了 CustomErrors

随机推荐