Asp.net 将数据从Ajax传递到局部视图
我有一个局部视图,当用户单击按钮时,一些数据被传递到数据库并返回结果。结果必须显示在另一个局部视图中。使用以下控制器方法和Ajax脚本获得结果:Asp.net 将数据从Ajax传递到局部视图,asp.net,ajax,asp.net-mvc-3,Asp.net,Ajax,Asp.net Mvc 3,我有一个局部视图,当用户单击按钮时,一些数据被传递到数据库并返回结果。结果必须显示在另一个局部视图中。使用以下控制器方法和Ajax脚本获得结果: public ActionResult GetResultData(Models.SelectedFilterValues selectedFilters) { resultData = resultRepository.GetResultData( selectedFilters.Projects,
public ActionResult GetResultData(Models.SelectedFilterValues selectedFilters)
{
resultData = resultRepository.GetResultData(
selectedFilters.Projects,
selectedFilters.ExperimentTypes,
selectedFilters.StudySet,
selectedFilters.Species,
selectedFilters.Strain,
selectedFilters.Department,
selectedFilters.Location);
return PartialView("Results", resultData);
}
function GetResultData(selectedProjects, selectedExperiments, selectedStudySets, selectedDepartments, selectedLocations, selectedSpecies, selectedStrain) {
$.ajax({
type: "GET",
url: "/Search/GetResultData",
data: { projects: selectedProjects, experimentTypes: selectedExperiments, studySet: selectedStudySets,
department: selectedDepartments, location: selectedLocations, species: selectedSpecies, strain: selectedStrain
},
error: function (data) {
},
success: function (data) {
}
});
}
当数据返回到Ajax方法中时,我不断收到错误,这是因为它返回的是部分视图吗?我希望Ajax方法接受数据,然后将数据传递到新的局部视图中。这可能吗
谢谢。我认为您混淆了客户端和服务器端逻辑 部分视图可以包含在服务器上执行的逻辑。通常,您将在控制器中执行业务逻辑,并在PartialView中执行UI逻辑。例如,使用Razor的任何标记实际上都是在服务器上执行的。然后,结果是发送到浏览器的HTML 此HTML可能包含客户端(JavaScript)代码。因此,通常您会创建一个PartialView,其中包含调用jQuery方法(如$.ajax())的JavaScript代码。当它出现时,JavaScript如何进入浏览器就不再重要了——作为PartialView的一部分与否,这并不重要。JS代码在客户端执行,它在服务器端调用逻辑 当Ajax调用将数据返回到客户端时,那里的JS代码可以将数据呈现到网格中,或者应用jQuery模板,或者根据需要对其执行任何操作。它不能做的是执行服务器端PartialView代码,因为任何PartialView都早就执行了