【发布时间】:2014-03-17 15:58:41
【问题描述】:
我有一个 AJAX 调用,它用部分视图的内容替换表格行。
这里是 AJAX 调用的链接...
@Ajax.ActionLink("Create Promise",
"CreatePromise",
new { id = Model.bookings.bookingid },
new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "insertedpromise",
OnSuccess = "postmessage('Promise_Created_')"
},
new { @class = "primaryButton" })
这是 AJAX 调用的目标...
<tr id="insertedpromise">
<td></td>
</tr>
@if (Model.promises.Any())
{
for (int i = 0; i < Model.promises.Count; i++)
{
<tr id="promise_@Model.promises[i].promiseid">
@Html.Partial("_promises", Model.promises[i])
</tr>
}
}
这里是部分...
@model salesModel.promise
@using (Ajax.BeginForm(
"UpdatePromise",
new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "UpdatePromises" + Model.promiseid.ToString(),
OnSuccess = "postmessage('promise_Updated_')"
}))
{
string thisdivid = "UpdatePromises" + Model.promiseid.ToString();
<div id="@thisdivid">
@Html.Hidden("promiseid", Model.promiseid)
@Html.Hidden("bookingid", Model.bookingid)
@Html.Hidden("updatedate", DateTime.Now)
<td>
@Ajax.ActionLink(" ",
"DeletePromise", new { promiseid = Model.promiseid },
new AjaxOptions
{
Confirm = "Delete?",
HttpMethod = "POST",
OnSuccess = "postmessage('promise_Deleted_" + Model.promiseid + "')"
}, new { @class = "buttondelete" })
<input type="submit" class="promisebtn btnupdate" value=" " />
</td>
<td>@Html.EditorFor(m => m.monetary)</td>
<td></td>
<td>@Html.TextAreaFor(c => c.note)</td>
<td>@String.Format("{0:d}", Model.updatedate)</td>
<td>@Html.DisplayFor(c => c.updatedby)</td>
</div>
}
尝试将插入的部分插入现有表很痛苦,但现在的问题是......
*当包含日期字段时 - 在这种情况下为 @Html.Hidden("updatedate", DateTime.Now) - 所有表格单元格都会从呈现的 html 中删除 *
似乎 MVC 注入的脚本以使用日历控件呈现输入字段是问题所在。有什么想法吗?
此外,还有许多 div 标签和其他细微之处的组合会导致同样的问题。在不同的场景下,渲染引擎渲染部分没有表格单元格
【问题讨论】:
-
除非网站习惯于按字面意思显示“承诺”列表,否则我发现使用术语 promise(在 JQuery 中用于异步操作承诺)令人困惑(比平时更多):) 在这种情况下,什么是承诺?
-
是销售人员对客户的承诺。我可以为 jquery 更改它,但在其他情况下也会发生这种情况。
-
啊,如果是销售人员承诺,只需将它们全局重命名为 lies :) 感谢您的解释。
标签: jquery html ajax asp.net-mvc razor