将数据从 MVC 控制器传递 ASp.NET JavaScript 函数

Pass data from ASp.NET MVC Controller to JavaScript function

本文关键字:ASp NET JavaScript 函数 数据 MVC 控制器      更新时间:2023-09-26

我有一个 ASP.NET MVC3 应用程序,它从 WCF 服务获取坐标列表。此服务返回一个包含一些属性(Xcoor 和 Ycoor)的列表。

   public List<Location> GetCoordinate()
        {
            sensor = new Location();
            List<Location> coordinateList = sensor.GetSensorInformation();
            return coordinateList;
        }

在我的网页中,我有一个JavaScript函数,它接受2个参数并在页面上显示坐标(在地图上)

function GetLocation(y, x){
//my code here
}

我想从我的控制器获取坐标列表,并将它们传递给该 JS 函数进行处理。

最好的

方法是什么?

我尝试使用以下方法,但我不知道如何解析结果

 $.ajax({
            url: '@Url.Action("GetCoordinate")',
            type: 'GET',
             dataType: 'xml',
            success: function(result) {
            },
            error: function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);}
        });

有什么想法吗?

将控制器更改为以下内容:

public ActionResult GetCoordinate()
{
    sensor = new Location();
    List<Location> coordinateList = sensor.GetSensorInformation();
    return Json(coordinateList, JsonRequestBehavior.AllowGet);
 }

现在,您的控制器操作将返回 jQuery 可以处理的 JSON。

更改您的 jQuery 方法来执行此操作:

$.ajax({
    url: '@Url.Action("GetCoordinate")',
    type: 'GET',
    dataType: 'json',
    success: function(data) {
        // process the data coming back
        $.each(data, function(index, item) {
            alert(item);
        });
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
    }
});

现在,您的 AJAX 方法知道它正在处理 JSON 数据。您可以使用jQuery每种方法对数据执行某些操作(在这种情况下,我只是在执行警报)。

好吧,

这里有一堆东西。

在控制器上定义函数 定义方法

public JsonResult GetCoodinates(){}

在方法中使用 WCF 服务器,并将结果转换为 JsonResult。

在你的JavaScript中

$.ajax({url: '/controller/GetCoordinates',类型: 获取,数据类型:"json",成功: 函数(数据) {$.each(data, function (key, value) {执行您在此处执行的任何调用以将坐标放置在地图上}});