【问题标题】:C# & AJAX- Update view with new modelC# & AJAX - 使用新模型更新视图
【发布时间】:2020-02-06 07:38:38
【问题描述】:

我有一个 .NET Web 应用程序,它以这种方式工作:页面 A,我在其中发送输入(条形码扫描结果),然后转到 页面 B加载由许多查询创建的表并在视图模型中插入结果。

我想要做的是,当我在页面 B 中扫描另一个条形码时,它必须执行与页面 A 相同的操作:页面 B 具有新结果。这意味着我通过 AJAX 向控制器发送一个参数,它进行查询和操作,然后它必须返回一个带有新视图模型的视图并重新加载页面。问题是它不会用新的视图模型重新加载页面,但它会保留旧数据。

我还尝试将表格放在局部视图中,并尝试在页面 B 中的每次输入后重新加载它,但它不会加载页面中的所有 javascript 代码,这是我需要保留的最重要的事情(编辑表值等)。 Javascript 代码包含在页面 B 中,而不是部分视图“.cshtml”中。

AJAX 代码:我向控制器发送一个 ID,它返回一个 HTML,我将它放在包含表格部分视图的 div 的 ID 上。

                    $.ajax
                    ({
                        type: 'POST',
                        url: '@Url.Action("QueryBollaTestP", "Bolla")',
                        data: JSON.stringify({ 'NumBolla': evt.state.code }),
                        contentType: 'application/json; charset=UTF-8',
                        dataType: "html",
                    success: function (data)
                    {
                      $(".tesst").html(data);
                    },
                })

控制器:

[HttpPost]
public ActionResult QueryBollaTestP(string NumBolla){
......... all operations and queries..... going to pickingViewModel for the table
return PartialView("_BollaTable", pickingViewModel);
}

有什么办法吗?是否使用局部视图无关紧要,重要的是它将使用正确的数据更新页面模型,然后加载javascript代码。

【问题讨论】:

    标签: javascript c# .net ajax


    【解决方案1】:

    唯一的变量是条形码(NumBolla?)?页面A的目的是什么? 我认为您只需要一个视图。

    public async Task<ActionResult> PageA(int NumBolla){
    ..do stuff create model 
    return View(model)
    }
    

    通过js加载新的条码扫描:window.location.href = "../PageA/" + NumBolla;

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多