【问题标题】:send DateTime through a Ajax.BeginForm #c通过 Ajax.BeginForm #c 发送 DateTime
【发布时间】:2013-05-14 07:21:06
【问题描述】:

我正在尝试使用 Ajax.BeginForm。我想通过 html 表单发送 DateTime。 问题在于控制器中的日期时间未初始化。我得到默认的日期时间。任何想法 ?感谢您的帮助。

我的模特:

public class TestModel
{
    public ObjectId _id { get; set; }
    public DateTime myDate { get; set; } 
}

我在 TestController 中的操作

 [HttpPost]
    public void UpdateTest(TestModel tmp)
    {
       tmp.myDate.Date <-- get the wrong date
       ...
       ...
    }

我的观点

@model Project.Models.TestModel


@using (Ajax.BeginForm(new AjaxOptions()
{
    HttpMethod = "POST",
    Url = Url.Action("UpdateTest", "Test")
}))
{
        @Html.TextBoxFor(model => model._id)
        @Html.TextBoxFor(model => model.myDate) // example : 18/05/2013 17:00:00


        <input type="submit" value="Submit" />
}

Javascript

<script type="text/javascript" src="/Scripts/jquery.unobtrusive-ajax.min.js">
</script>

【问题讨论】:

  • 你应该有 ActionResult() 而不是 void
  • 是的,您应该使用 ActionResult 而不是 void 但另外,如果您希望 myDate 属性不被初始化为默认日期,则将其设为可空类型,如下所示:public DateTime?我的日期 { 得到;放; }

标签: c# .net asp.net-mvc serialization ajax.beginform


【解决方案1】:

您必须为 DateTime 创建自定义模型绑定器并将其注册到 global.asax

【讨论】:

    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2012-01-19
    • 2013-03-23
    • 2011-04-09
    相关资源
    最近更新 更多