在 asp.net mvc 3 中使用特定区域性的日期绑定列表失败

发布于 2024-12-13 06:20:28 字数 851 浏览 0 评论 0原文

我有这种情况,我需要接受三个会议日程,下面是

会议日程模型

public class MeetingSchedule
{
    public DateTime Date { get; set; }

}

表格的

<form action="@Url.Action("Schedule")" method="post" >
    <input type="text" name="meetingSchedules[1].Date" id="schedule2" class="datepicker" />
    <input type="text" name="meetingSchedules[2].Date" id="schedule3" class="datepicker" />
</form>

详细信息以及

[HttpPost]
public ActionResult Schedule(List<MeetingSchedule> meetingSchedules)
    {}

我设置文化的

<system.web>    
    <globalization uiCulture="en-GB" culture="en-GB" />
</system.web>

操作仍然无法绑定格式为“dd/MM/yyyy”的日期,例如:如果我选择任何一个某一日期为 26/10/2011,模型绑定器无法绑定它,而是显示默认的日期时间值。

请帮我解决这个问题,

谢谢

i have this scenario where i need to accept three meeting schedules , below are the details

meeting Schedule model

public class MeetingSchedule
{
    public DateTime Date { get; set; }

}

Form looks like

<form action="@Url.Action("Schedule")" method="post" >
    <input type="text" name="meetingSchedules[1].Date" id="schedule2" class="datepicker" />
    <input type="text" name="meetingSchedules[2].Date" id="schedule3" class="datepicker" />
</form>

and Action

[HttpPost]
public ActionResult Schedule(List<MeetingSchedule> meetingSchedules)
    {}

i set the culture

<system.web>    
    <globalization uiCulture="en-GB" culture="en-GB" />
</system.web>

Still could not bind Date of format "dd/MM/yyyy", ex: if i choose any one date as 26/10/2011 , the model binder could not bind it , instead show default DateTime Value.

Please help me with this

Thanks

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

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

发布评论

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

评论(1

自由如风 2024-12-20 06:20:28

我遇到了同样的问题,发现问题出在代码上。

如果您将操作视为普通方法,则模型绑定程序会在调用操作方法时启动,在此之前如果您已经设置了区域性信息,那么就一切就绪了。

在构造函数中添加以下代码:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

现在再试一次,模型绑定器现在应该能够识别 dd/MM/yyyy 格式的日期。

I ran into same issue and found out the problem is with the code.

If you think of action as a plain method, the model binder kicks in when the action method is invoked, prior to this if you have set the culture info then you are all set.

In the constructor add following code:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

Now try again, the model binder should now be able to recognize the date in dd/MM/yyyy format.

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