返回带对象或 ViewBag 的 PartialView
Returning PartialView with object or ViewBag
我正在开发一个应用程序,我可以像这样 Ajax 调用控制器:
$.ajax({
url: '@Url.Action("Test", "Test")',
async: true,
type: 'POST',
dataType: "html",
data: {
param1 : paramVal,
},
success: function (data) {
debugger;
$('#Partial').html(data).show(); //I have a div with this ID to render the PartialView
}
});
和我的控制器方法
public async Task<ActionResult> Test (string param){
//doing some processing and returning a List of Datatables
var newList = new List<DataTable>(); //gets populated with some data
return PartialView("_Partial",newList);
}
所以这工作得很好。我的 Ajax 调用有效,我将 newList 传递给 _Partial,一切正常。
我想要完成的是:我不想 returning newList 到 Ajax 调用,我想 return 一个对象,所以我可能想做类似的事情:
var newList = new List<DataTable>(); //gets populated with some data
bool test = false;
return PartialView("_Partial",new {List = newList, BooleanTest = test});
并在 Ajax 成功时,我想同时访问 List
和 BooleanTest
success: function (data) {
debugger;
alert(data.BooleanTest);
$('#Partial').html(data.List).show(); //I have a div with this ID to render the PartialView
我知道我可以用 JsonResult 做到这一点(return 一个对象),但似乎不能用 PartialView
有什么方法可以 return PartialView with Object?
我会尝试创建一个 ViewModel,它有一个 List 和一个 Bool,您可以在其中将它们填充到 ActionResult 中,然后将 ViewModel 传递给 PartialView。
在 PartialView 中,您可以访问 List 和 Bool。
return我会这样写:
return PartialView(nameof(_Partial), ViewModel);
我正在开发一个应用程序,我可以像这样 Ajax 调用控制器:
$.ajax({
url: '@Url.Action("Test", "Test")',
async: true,
type: 'POST',
dataType: "html",
data: {
param1 : paramVal,
},
success: function (data) {
debugger;
$('#Partial').html(data).show(); //I have a div with this ID to render the PartialView
}
});
和我的控制器方法
public async Task<ActionResult> Test (string param){
//doing some processing and returning a List of Datatables
var newList = new List<DataTable>(); //gets populated with some data
return PartialView("_Partial",newList);
}
所以这工作得很好。我的 Ajax 调用有效,我将 newList 传递给 _Partial,一切正常。
我想要完成的是:我不想 returning newList 到 Ajax 调用,我想 return 一个对象,所以我可能想做类似的事情:
var newList = new List<DataTable>(); //gets populated with some data
bool test = false;
return PartialView("_Partial",new {List = newList, BooleanTest = test});
并在 Ajax 成功时,我想同时访问 List
和 BooleanTest
success: function (data) {
debugger;
alert(data.BooleanTest);
$('#Partial').html(data.List).show(); //I have a div with this ID to render the PartialView
我知道我可以用 JsonResult 做到这一点(return 一个对象),但似乎不能用 PartialView
有什么方法可以 return PartialView with Object?
我会尝试创建一个 ViewModel,它有一个 List 和一个 Bool,您可以在其中将它们填充到 ActionResult 中,然后将 ViewModel 传递给 PartialView。 在 PartialView 中,您可以访问 List 和 Bool。
return我会这样写:
return PartialView(nameof(_Partial), ViewModel);