Jquery 视图模型的ajax缓存问题

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代码 不清楚你在问什么。您正在进

我在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);
}