gpt4 book ai didi

javascript - 使用 AJAX 结果更新 DisplayFor Date

转载 作者:行者123 更新时间:2023-12-03 06:43:05 26 4
gpt4 key购买 nike

在 View 中,有一个 DisplayFor 与模型中的 DateTime 字段相关联。为了更新该字段,AJAX 调用返回一个日期。我可以将 AJAX 日期转换为 MM/DD/YYYY 值,但使用 .val 设置 DisplayFor 不会更新 View 。 Chrome 开发者工具没有显示错误,实际上显示了正确转换的日期时间,但 DisplayFor 没有更新。我没有尝试更改 .attr 而不是 .val,因为 .val 似乎是正确的选项。谁能明白为什么 View 没有更新吗?提前致谢!

模型声明:

DateTime? SaleDate { get; set; }

View 中的 DisplayFor:

@Html.LabelFor(m => m.SaleDate, "Sale Date")
@Html.DisplayFor(m => m.SaleDate, "{0:d}", new { @class = "form-control" })

在成功的 AJAX 调用中更新脚本:

success: function (data) {
var $sDate = $("#SaleDate");
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(data[0].SaleDate);
var dt = new Date(parseFloat(results[1]));
$sDate.val(dt); //dt is correct Date, but DisplayFor isn't updating!
}

编辑

页面源码显示id正确,但是没有输入。我认为这是因为 DisplayFor 与 TextBoxFor 的关系,但是明显缺少 id 可能是问题所在吗?

<label for="SaleDate">Sale Date</label>
6/1/2016 12:00:00 AM//no input section, just the DateTime value

或者,如果 SaleDate 为 null:

<label for="SaleDate">Sale Date</label>
//no value or input section

最佳答案

View 中的 Razor 代码生成一些 HTML 代码。 Javascript 在客户端工作,不知道 Razor 的 @Html.DisplayFor ,仅关于其输出。我不擅长 Razor,因此我的报价可能包含错误。
1.@Html.TextBoxFor(m => m.SaleDate, "{0:d}", new { @class = "form-control", id = "SaleDate" }) .
JS 保持不变。缺点:这是可编辑的文本框(输入)
2.<span id="SaleDate" class="form-control">@Html.DisplayFor(m => m.SaleDate, "{0:d}")</span>
JS最后一行应该是 $sDate.html(dt);

希望对您有所帮助。

关于javascript - 使用 AJAX 结果更新 DisplayFor Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864684/

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