gpt4 book ai didi

c# - 使用 Bootstrap Datepicker 选择 future 日期并将其传递给 ASP.NET MVC Controller

转载 作者:行者123 更新时间:2023-11-30 12:10:07 27 4
gpt4 key购买 nike


我尝试将包含在 html 表单中的 Bootstrap 日期选择器的日期传递给 ASP.NET MVC3 Controller 。问题是当我选择过去的日期时,传递给 Controller ​​的模型有适当的 DateTime 字段填充了正确的值。但是,当我选择当前或 future 日期时,我在 StartDate DateTime 字段中得到 0001-01-01 值。这是 View 的代码:

@using (Ajax.BeginForm("AddNewActivity", "Home", null, new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "activitiesTableDiv",
InsertionMode = InsertionMode.Replace,
OnBegin = "disableButton"
}))
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label">
Start date
</div>
<div class="editor-field">
<input id="StartDate" data-date-format="dd-mm-yyyy" class="pickDate form-control valid"
type="text" name="StartDate" data-val-required="The StartDate field is required."
data-val="true" />
@Html.ValidationMessageFor(model => model.StartDate)</div>
</fieldset>
}

Controller 端 - POST 方法:

public ActionResult AddNewActivity(ActivityModel model, FormCollection collection)
{
var test = model.StartDate;

if (model.ObjectId == null)
objectid = model.ObjectId;

var jury = model.UserIds.Split(';').ExtractInt32();

string[] emails = jury.Select(i => Storage.UserGetById(i).Email).ToArray();
if (model.UserIds.Length > 1 && model.UserIds[model.UserIds.Length - 1] == ';')
model.UserIds = model.UserIds.Substring(0, model.UserIds.Length - 1);

var tags = HtmlHelperExtension.ExtractCheckListBoxResult(collection).Where(i => i.Item2).Select(i => i.Item1).ToArray();
var groups = model.ChosenGroups.Where(i => i.Checked == true).Select(i => i.Id).ToArray();

var url = String.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/"));
SendActivityEmails(model.Name, url + "OIP/Activity/", emails);

return RedirectToAction("_Activities", "OIP");
}

型号:

public class ActivityModel
{
public long Id { get; set; }

public string ObjectId { get; set; }

public TagDTO[] Tags { get; set; }

public ModelItemChecked[] ChosenTags { get; set; }

public DateTime StartDate { get; set; }

public DateTime Deadline { get; set; }

public DateTime ResultsAnnouncement { get; set; }
}

我找不到有类似问题的人。

最佳答案

我认为问题出在以下代码中的日期格式字符串:

<input id="StartDate" data-date-format="dd-mm-yyyy" class="pickDate form-control valid"
type="text" name="StartDate" data-val-required="The StartDate field is required."
data-val="true" />

把data-date-format html属性去掉,你会发现又能用了。否则,如果您希望更改传递的日期格式,则需要在日期字段上添加以下属性:

[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="dd-mm-yyyy")]
public DateTime StartDate { get;set; }

关于c# - 使用 Bootstrap Datepicker 选择 future 日期并将其传递给 ASP.NET MVC Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com