Jquery 视图模型的ajax缓存问题
我在mvc中使用jquery和AJAX,在视图上也有自定义HTML帮助程序。页面上有一个下拉列表,当我更改索引时,我调用AJAX方法。该方法检查下拉列表的值,然后相应地隐藏页面上的表单字段。我进入调试模式,条件触发以隐藏表单字段,但页面返回时表单字段可见。在AJAX调用中,我将cache属性设置为false。我还应该做些什么来避免页面缓存吗?我是否必须使用replace关键字来删除缓存的字段?谢谢你的帮助 我使用的代码: 阿贾克斯: 查看自定义Html帮助程序 C代码Jquery 视图模型的ajax缓存问题,jquery,ajax,caching,model-view-controller,controller,Jquery,Ajax,Caching,Model View Controller,Controller,我在mvc中使用jquery和AJAX,在视图上也有自定义HTML帮助程序。页面上有一个下拉列表,当我更改索引时,我调用AJAX方法。该方法检查下拉列表的值,然后相应地隐藏页面上的表单字段。我进入调试模式,条件触发以隐藏表单字段,但页面返回时表单字段可见。在AJAX调用中,我将cache属性设置为false。我还应该做些什么来避免页面缓存吗?我是否必须使用replace关键字来删除缓存的字段?谢谢你的帮助 我使用的代码: 阿贾克斯: 查看自定义Html帮助程序 C代码 不清楚你在问什么。您正在进
不清楚你在问什么。您正在进行一个保持在同一页面上的ajax调用。除非您在成功回调中更新DOM,否则视图不会有任何更改。我运行调试器,并调用控制器上的操作,然后返回视图。将调用helper extender并运行条件,由于缓存设置为false,我认为视图将使用返回的视图进行更新。如何更新DOM?如果调用的方法返回部分视图,则需要$.ajax{….success:functiondata{$someElement.htmldata;}
$(document).ready(function() {
$("#NameCD").change(function(e) {
$.ajaxSetup({
cache: false
});
e.preventDefault();
var strSelected = "";
$("#NameCD option:selected").each(function() {
strSelected += $(this)[0].value;
});
if (strSelected) {
$.ajax({
type: "GET",
url: '@Url.Action("_NameInsert", "Name")' + '?nrn=' + strSelected,
data: {
nrn: strSelected
},
dataType: 'html',
cache: false,
async: true
});
}
});
});
@Html.TextBoxForName(x => x.Salutation, ViewBag.NameCD as string, new { @class = "form-control col-md-3" })
public static MvcHtmlString TextBoxForName < TModel, TProperty > (this HtmlHelper < TModel > htmlHelper, Expression < Func < TModel, TProperty >> expression, object namecode, object htmlAttributes = null) {
var attrs = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
if (Enum.IsDefined(typeof(NameSelect.NameCodeDisable), namecode.ToString().Trim())) {
attrs.Add("style", "display:none;");
}
return htmlHelper.TextBoxFor(expression, attrs);
}