防止在 MVC Ajax.BeginForm 中使用某些条件更新 html?
Prevent updating html with some conditions in MVC Ajax.BeginForm?
我的视图中有以下代码,
用于站点搜索,用户可以多次提交以下表单。
@using (Ajax.BeginRouteForm("Search", new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "SearchContents",
LoadingElementId = "SearchAjaxLoader",
OnSuccess = "SearchLoadContentsOnSuccess",
OnFailure = "SearchLoadContentsOnFailure",
OnBegin = "SearchLoadContentsOnBegin",
OnComplete = "SearchLoadContentsOnComplete",
}))
{
@Html.AntiForgeryToken()
<input type="text" name="Search" />
<input type="submit" value="Submit" />
}
我想拒绝旧的 ajax 结果并只显示最新的 ajax 结果。
在非 mvc Ajax 形式中,我正在创建一个数组作为 ajax 计数器并将服务器响应与其进行比较以防止更新 html.
我想知道如何防止 Ajax.BeginForm
在某些情况下更新 Html。
作为示例,我将使用 OnSuccess
调用进行演示,您可以为每个要处理的事件执行此操作。
在您的 AjaxOptions
中删除它以防止替换;
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "SearchContents",
在你的 SearchLoadContentsOnSuccess
JavaScript 方法中,没有看到我猜测的方法,它会是这样的:
function SearchLoadContentsOnSuccess()
{
// Do something
}
改成这样:
function SearchLoadContentsOnSuccess(e)
{
// Do something
}
现在 e
参数将包含从您的 ajax 调用发回的数据。
在您更新后的方法中,我会简单地检查响应并相应地采取行动。
例如,如果您的响应包含一个值和结果 属性:
function SearchLoadContentsOnSuccess(e)
{
// Do something
$(e.value == 1)
{
$('#SearchContents').html(e.results);
}
}
您只需更改上述方法中的 javascript 即可满足您的需要。
我的视图中有以下代码,
用于站点搜索,用户可以多次提交以下表单。
@using (Ajax.BeginRouteForm("Search", new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "SearchContents",
LoadingElementId = "SearchAjaxLoader",
OnSuccess = "SearchLoadContentsOnSuccess",
OnFailure = "SearchLoadContentsOnFailure",
OnBegin = "SearchLoadContentsOnBegin",
OnComplete = "SearchLoadContentsOnComplete",
}))
{
@Html.AntiForgeryToken()
<input type="text" name="Search" />
<input type="submit" value="Submit" />
}
我想拒绝旧的 ajax 结果并只显示最新的 ajax 结果。
在非 mvc Ajax 形式中,我正在创建一个数组作为 ajax 计数器并将服务器响应与其进行比较以防止更新 html.
我想知道如何防止 Ajax.BeginForm
在某些情况下更新 Html。
作为示例,我将使用 OnSuccess
调用进行演示,您可以为每个要处理的事件执行此操作。
在您的 AjaxOptions
中删除它以防止替换;
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "SearchContents",
在你的 SearchLoadContentsOnSuccess
JavaScript 方法中,没有看到我猜测的方法,它会是这样的:
function SearchLoadContentsOnSuccess()
{
// Do something
}
改成这样:
function SearchLoadContentsOnSuccess(e)
{
// Do something
}
现在 e
参数将包含从您的 ajax 调用发回的数据。
在您更新后的方法中,我会简单地检查响应并相应地采取行动。 例如,如果您的响应包含一个值和结果 属性:
function SearchLoadContentsOnSuccess(e)
{
// Do something
$(e.value == 1)
{
$('#SearchContents').html(e.results);
}
}
您只需更改上述方法中的 javascript 即可满足您的需要。