【发布时间】: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