如何从 List<Datetime> ASP NET MVC 中的 multidatespicker 接收日期?
How to receive dates from multidatespicker in a List<Datetime> ASP NET MVC?
在我的程序中,我已经为我的解决方案实现了 multidatespicker (http://multidatespickr.sourceforge.net/)。我有一个名为 DatesDispo
的属性来接收从我的日历中选择的日期。
public List<DateTime> DatesDispo { get; set; }
在我的剃刀视图中,我有一个日历输入:
<div class="form-group">
@Html.LabelFor(model => model.DatesDispo, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input name="DatesDispo" id="DatesDispo"></input>
</div>
</div>
我看到了我的日历,直到它开始工作。但是在表格的 post 上,我没有收到在 DateDispo
字段中选择的日期。在调试模式下,我已经测试过它并且它有效但也许我改变了一些东西现在我无法绑定我的日期字段选择的日期。有人知道为什么吗?我发誓我选择了 2 个日期并且我的日期列表有一个计数 = 2.
已编辑:
从 post => https://gyazo.com/629a7f01c6802b2cefc825d786b2470b
收到的数据
__RequestVerificationToken=FG381kMw0ANq_vV0ucoFr7Rrn6J1nqZNptlSy9JtT27JUggqOvru9QFkPZP40QniZ_ZBtpBNzMN00MZA5Aq06ZByz3yAz9-YNXpNjMhOG0o1&IdHabilete=7&Adresse=&Ville=&CodePostal=&Pays=&Province=&DateMax=2016-01-26+13%3A42%3A23&DateCreation=2016-01-26+13%3A42%3A23&DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016&Specifications=System.Collections.Generic.List%601%5BFavornet.Models.Biz.SpecDemande%5D
DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
DatesDispo
从上面提取的字段
DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
尽管您打算 post 日期集合。您正在 post 将单个字段作为单个字符串。在这种情况下,自动绑定对单个日期没有问题,但无法识别您发送多个日期的方式。
<input name="DatesDispo" id="DatesDispo"></input>
单个输入发送为
DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
或者
"01/28/2016, 01/29/2016"
一种解决方案是将其作为需要解析回集合的字符串发送。
public class SomeModel
{
public string DatesDispo { get; set; }
}
[HttpPost]
public ActionResult SendDates(SomeModel model)
{
List<DateTime> dates = new List<DateTime>();
var datesDispo = model.DatesDispo.Split(',');
foreach(var date in datesDispo)
{
dates.Add(DateTime.Parse(date));
}
...
}
在我的程序中,我已经为我的解决方案实现了 multidatespicker (http://multidatespickr.sourceforge.net/)。我有一个名为 DatesDispo
的属性来接收从我的日历中选择的日期。
public List<DateTime> DatesDispo { get; set; }
在我的剃刀视图中,我有一个日历输入:
<div class="form-group">
@Html.LabelFor(model => model.DatesDispo, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input name="DatesDispo" id="DatesDispo"></input>
</div>
</div>
我看到了我的日历,直到它开始工作。但是在表格的 post 上,我没有收到在 DateDispo
字段中选择的日期。在调试模式下,我已经测试过它并且它有效但也许我改变了一些东西现在我无法绑定我的日期字段选择的日期。有人知道为什么吗?我发誓我选择了 2 个日期并且我的日期列表有一个计数 = 2.
已编辑: 从 post => https://gyazo.com/629a7f01c6802b2cefc825d786b2470b
收到的数据__RequestVerificationToken=FG381kMw0ANq_vV0ucoFr7Rrn6J1nqZNptlSy9JtT27JUggqOvru9QFkPZP40QniZ_ZBtpBNzMN00MZA5Aq06ZByz3yAz9-YNXpNjMhOG0o1&IdHabilete=7&Adresse=&Ville=&CodePostal=&Pays=&Province=&DateMax=2016-01-26+13%3A42%3A23&DateCreation=2016-01-26+13%3A42%3A23&DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016&Specifications=System.Collections.Generic.List%601%5BFavornet.Models.Biz.SpecDemande%5D DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
DatesDispo
从上面提取的字段
DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
尽管您打算 post 日期集合。您正在 post 将单个字段作为单个字符串。在这种情况下,自动绑定对单个日期没有问题,但无法识别您发送多个日期的方式。
<input name="DatesDispo" id="DatesDispo"></input>
单个输入发送为
DatesDispo=01%2F28%2F2016%2C+01%2F29%2F2016
或者
"01/28/2016, 01/29/2016"
一种解决方案是将其作为需要解析回集合的字符串发送。
public class SomeModel
{
public string DatesDispo { get; set; }
}
[HttpPost]
public ActionResult SendDates(SomeModel model)
{
List<DateTime> dates = new List<DateTime>();
var datesDispo = model.DatesDispo.Split(',');
foreach(var date in datesDispo)
{
dates.Add(DateTime.Parse(date));
}
...
}