将数据从分部视图传递到其他分部视图

pass data from partial view to other partial view

我有部分视图 .cshtml 页面

$("#btnsearch").click(function () {
    dserial = $("#dserial").val();
    $('.content').load("/ServiceMaintenance/SearchInstallationDeviceDetails");
})

这里"dserial"是文本框的id,"btnsearch"是按钮的id,"content"是[=25的id[class] =] 加载局部视图。

我需要将 'dserial' 的值分配给控制器 [=21= 中的视图 SearchInstallationDeviceDetails.cshtml 中的只读文本框(让 ID 为 "serialno") ]

1 Change the action parameters, assuming a controller action:

public ActionResult SearchInstallationDeviceDetails()

改为

public ActionResult SearchInstallationDeviceDetails(string dserial)

(或 int/guid 如果字符串不合适)

然后把你的js改成传参:

$('.content').load(
              "/ServiceMaintenance/SearchInstallationDeviceDetails",
              { dserial : dserial });

注意:这只适用于简单 ID,如果不是简单 ID,则必须使用 POST

然后更新局部视图的视图模型以传递 dserial 并在视图中:

@Html.TextBoxFor(model=>model.dserial, ...

2 Inject the value after the partial has loaded.

不太好,但取决于您的限制(例如,如果您不能更换控制器)。您可能会得到一种 FOUC(无样式内容的闪光)——在本例中为“未输入”内容

$('.content').load(
          "/ServiceMaintenance/SearchInstallationDeviceDetails",
          function() {
              $("#serialno").val(dserail).prop("readonly", true);
          });

内容加载完成后可以这样填写吗?

$('.content').load("/ServiceMaintenance/SearchInstallationDeviceDetails",
function() {
  $('.content #serialno').val(dserial);
});