Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将数据从Ajax传递到局部视图_Asp.net_Ajax_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 将数据从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,

我有一个局部视图,当用户单击按钮时,一些数据被传递到数据库并返回结果。结果必须显示在另一个局部视图中。使用以下控制器方法和Ajax脚本获得结果:

 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都早就执行了