2017-08-17 65 views
0

我无法使用引导日期选择器绑定我的模型的属性。我收到以下错误:引导日期选择器。无法绑定:该值无效

enter image description here

起息日是无效的DateField

这是属性是如何在我的模型中定义:

[DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime FechaDesignado { get; set; } 

这是如何构建视图:

<div class="form-group"> 
    <div> 
     <input type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/> 
     <span asp-validation-for="@item.FechaDesignado" class="text-danger"></span> 
    </div> 
</div> 

翻译为:

<div class="form-group" form="form1"> 
    <div> 
     <input type="datetime" class="datepicker form-control" data-val="true" data-val-required="The FechaDesignado field is required." name="item.FechaDesignado" value="09/01/1901" /> 
     <span class="text-danger field-validation-valid" data-valmsg-for="item.FechaDesignado" data-valmsg-replace="true"></span> 
    </div> 
</div> 

这是怎么看我的DB。

enter image description here

这是日期选择器代码:

<script type="text/javascript"> 
    $(function() { 
     $('.datepicker').datepicker({ 
      "autoclose": true 
     }); 
    }); 

</script> 

POST操作的控制器内:

[HttpPost, ActionName("Management")] 
    //[ValidateAntiForgeryToken] 
    public async Task<IActionResult> Management(int? id) 
    { 
     var storetoupdate = _context.Stores.SingleOrDefault(m => m.StoreID == id.Value); 
     if (await TryUpdateModelAsync(
      storetoupdate, "item", 
      s => s.StoreName, s => s.IncomePeriodicity, s=>s.Usuario, s => s.FechaDesignado)) 
     { 
      await _context.SaveChangesAsync(); 
      return RedirectToAction("Management"); 
     } 
     return RedirectToAction("Management"); 
    } 

问:好像我必须转换日期输入字段使用DateTime.ParseExact的日期时间对象,但我不知道如何编辑控制器的t他的。对不起,但我正在学习这一切。

谢谢。

+0

理想情况下,你不需要手动绑定日期值到视图模型。发布日期值是否未正确绑定到Store View模型的FechaDesignado属性? – Win

+0

@Win yeap,商店模型的财产FechaDesignado不绑定到模型,说价值发送它是无效的 –

回答

1

您可以使用DateTime.ParseExactdate格式转换为datetime。请参阅this了解更多信息。

编辑

您可以使用data-format属性像这样的职位正确的格式日期:

<input data-format="0:MM/dd/yyyy" type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/> 
+0

谢谢,我正在调查这一点,但我不知道如何将它引入我的后发表动作:( –

+0

@LuisAlbertoDelgadodelaFlo我编辑了我的答案,请再看一遍,我希望这可以解决您的问题 –

+0

非常感谢!! :) –