【问题标题】:Partial View not showing updated model values. Always shows existing values局部视图未显示更新的模型值。始终显示现有值
【发布时间】:2018-01-30 15:41:57
【问题描述】:

实际上,每当我进行搜索时,我都会尝试更新部分视图内容。所以我使用ajax调用来实现这一点。因此,从控制器到部分视图模型的值是正确的(新数据),但它没有绑定到视图(显示现有数据)。

主视图

     <div class="tab-pane active" id="partialviewpage">
          @{
             Html.RenderPartial("_Details", Model);
           }
      </div>

部分视图(_详细信息)

   foreach (var item in Model.AllAds)
    {
       //div contents
    }

Ajax 调用

   var text = 'test';
   $.ajax({
        url: '@Url.Action("Subcategory", "Category")',
        type: 'GET',
        dataType: 'JSON',
        data: { item: text },
        success: function (partialView) {
            $('#partialviewpage').html(partialView);
        },
        error: function (xhr, ajaxOptions, thrownError) {

        }
    });

类别控制器

    public ActionResult Subcategory(string item)
    {
      //Logic calling Api content goes here

      var SearchresponseData = responseMessage.Content.ReadAsStringAsync().Result;
      JavaScriptSerializer JssSearch = new JavaScriptSerializer();
      List<Result> Jsonresult =       (List<Result>)JssSearch.Deserialize(SearchresponseData, typeof(List<Result>));
      var Model= new ModelName();
        {
            Model.AllAds = new List<Result>();
            Model.AllAds = Jsonresult;
        }
      return PartialView("_Details", Model);
    }

那么,我的代码有什么问题以及如何修改代码以获取新的模型值。任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • 我认为success: function (PartialView) { 是一个错字,它真的是partialView(小写p)?
  • 您是否在控制台中检查了任何 js 错误,您是否在网络选项卡上检查数据是否返回正确,您是否检查数据是否返回正确,而不是选择器等任何绑定问题。
  • 而且你的控制器方法中的代码甚至无法编译!
  • 网络标签@programtreasures没有错误
  • @Muzz 你有没有在网络标签中检查响应数据是否更新?

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-ajax


【解决方案1】:

我观察到您使用错误的变量来成功替换html,

我已将PartialView 替换为partialView

 var text = 'test';
  $.ajax({
    url: '@Url.Action("Subcategory", "Category")',
    type: 'GET',
    dataType: 'JSON',
    data: { item: text },
    success: function (partialView) {
        $('#partialviewpage').html(partialView);
    },
    error: function (xhr, ajaxOptions, thrownError) {

    }
});

【讨论】:

  • 如果这是问题所在,那么它是一个简单的错字,您应该投票关闭,而不是添加 ab 答案。
  • @StephenMuecke 只需使用修改后的代码给出 OP 的路径
  • 在我也改变之后,没有得到更新的值。 @programtreasures
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 2021-12-24
相关资源
最近更新 更多