在 mvc 中将 fromat 中的日期转换为 MM/dd/yyyy 时出现问题:dd.MM.yyyy

发布于 2024-11-02 05:03:22 字数 809 浏览 4 评论 0原文

以下是

模型

public class MyViewModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
    public DateTime Validity { get; set; }
}

控制器

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Validity = DateTime.Now
        });
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

视图示例

@model MyViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Validity)
    <input type="submit" value="OK" />
}

,当我选择像 12.12.2011 这样的日期时,它工作正常,但是当我使用像 18.12.2011 这样的日期时,它将属性(日期时间)中的值设置为 01/01/0001。这对我来说是个问题。

Following is the example

Model

public class MyViewModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
    public DateTime Validity { get; set; }
}

Controller

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Validity = DateTime.Now
        });
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

View

@model MyViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Validity)
    <input type="submit" value="OK" />
}

When I select a date like 12.12.2011 it is working fine but When i use a date like 18.12.2011 it sets the value in the property(datetime) to 01/01/0001. This is a problem for me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撑一把青伞 2024-11-09 05:03:22

您期望日期采用“英国”格式(日/月/年),但转换代码使用“美国”格式(月/日/年)。

从字符串转换为 DateTime 的代码需要使用正确的格式字符串。

您需要 DateTime.Parse 方法获取文化和格式信息。您可以为此方法提供可能格式的列表,以便您可以处理各种输入。

You're expecting dates in "UK" format (day/month/year) but the conversion code is using "US" format (month/day/year).

The code that converts from a string to a DateTime needs to use the correct format string.

You need the DateTime.Parse method that takes culture and formatting information. You can give this method a list of possible formats so you can cope with a variety of inputs.

轻许诺言 2024-11-09 05:03:22

您可以在 web.config 文件中添加

You can add <globalization uiCulture="en-GB" culture="en-GB" /> in web.config file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文