我在绑定到模型的局部视图中使用了kendo窗口和Ajax.BeginForm()。 窗口直接呈现在流中。
@{
Html.Kendo().Window()
.Name("name")
.Content(
@<text>
@using (Ajax.BeginForm("PostReview", "Review", new AjaxOptions
{
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
OnSuccess = "onSuccessreviewOrderDialogForm",
}, new
{
@id = "reviewOrderDialogForm"
}))
{
@Html.HiddenFor(m => m.OrderReviewId)
...
}
</text>
)
.Draggable()
.Visible(false)
.Modal(true)
.Render();
}
这是事情:
发布第一个模型后,以下帖子将始终存储OrderReviewId
的先前值(第一个模型)。
现在我知道 HtmlHelpers 将始终使用来自服务器的帖子的值,但在这种情况下我没有看到问题。
发布窗口后关闭。之后,新模型(具有正确的值)被传递到包括kendo window
的相同局部视图并使用新的渲染!模型。调试模式显示所有字段的正确值。
但是通过发布,OrderReviewId
的值仍然是旧值。
这怎么可能呢?为什么其他字段(此处未显示)不正确 - 它们也是HtmlHelper字段。
由于
答案 0 :(得分:0)
我打赌你在前一个窗口实例中留下了一些文物。关闭后,可以确保对话框完全从dom中删除。类似的东西:
if ($("#frmTest")!= null){
$("#frmTest").data("kendoWindow").destroy();
$("#frmTest").empty();
}