根据我从您的问题和提供的代码中了解到的情况,您正在从 DOM 元素中提取一些值,然后在某些事件中尝试在新选项卡中打开视图。现在,您希望 DOM 元素的这些数据在新视图中也可用。如果这个理解是正确的,那么你可以像下面那样做。
你已经有了这个。
var Hdata = 'some value';
var abc = document.getElementById('mycontrol1');
var abcd = document.getElementById('mycontrol2');
现在有了这些值,你只需要点击一个控制器来渲染视图。因此,您可以通过构造查询字符串将这些值传递给控制器。
var URL = '@Url.Action("Action", "Controller")' + '?Hdata=' +Hdata + '&abc='+abc +'&abcd='+abcd;
window.open(URL , '_blank');
你的控制器也必须是这样的。
public ActionResult YourControllerName(string Hdata,string abc, string abcd)
{
ViewBag.Hdata = Hdata;
ViewBag.abc = abc;
ViewBag.abcd= abcd;
return PartialView();
}
现在您将通过 ViewBag 在局部视图中获得数据。
或者更简洁的方法是有一个模型来接收和传递数据。
public class YourModel
{
public string Hdata {get;set;}
public string abc {get;set;}
public string abcd {get;set;}
}
那么控制器就是
public ActionResult YourControllerName(YourModel pageData)
{
return PartialView(pageData); //this requires your view to use model of type YourModel
// OR
// ViewBag.PageData = pageData;
// return PartialView();
}