如何使用 ajax c# 从控制器获取数据

How to Get Data from controller with ajax c#

如何使用 ajax 从控制器获取数据。

我的控制器中的方法

 public ActionResult StartPage()
    {
        var result = CommonService.GetCurrentDateTime();
        ViewBag.DateAndTimeFromDataBase = result ;
        return View();
    }

和我的Ajax

$(document).ready(function() {
    setInterval('getServerDateTime()', 0, 1000);
});

function getServerDateTime() { 
    $.ajax({
        type: 'GET',
        cache: false,
        url: "/Login/StartPage",
        complete: function (req, textStatus) {
            var dateString = req.getResponseHeader('Date'); 
            if (dateString.indexOf('GMT') === -1) {
                dateString += ' GMT';
            }
            var date = new Date(dateString);
            $('#time-span').text(dateString);
        }
    });
};

这里我从服务器获取日期时间。我想从控制器中获取时间日期的值。并显示它们之间的差异。 我是新来的。我无法在控制器中获得结果。

<div>
    <span id="time-span" class="date-time"></span>
</div>

考虑到这是一个 AJAX 请求,您最好 return 将数据作为 JSON 负载。您可以像这样修改代码来做到这一点:

public JsonResult StartPage()
{
    var date = CommonService.GetCurrentDateTime();
    return Json(new { date });
}

这将 return 一个看起来像这样的客户端有效负载:

{
    "date": "<the value of GetCurrentDateTime() as a String>"
}

然后可以通过您的 JavaScript 代码轻松访问,如下所示:

$.ajax({
    type: 'GET',
    cache: false,
    url: "/Login/StartPage",
    complete: function (response) {
        var dateString = response.date;
        if ( !dateString ) {
            console.error('A001: date not returned from server');
        }

        if (dateString.indexOf('GMT') === -1) {
            dateString += ' GMT';
        }
        var date = new Date(dateString);
        $('#time-span').text(dateString);
    }
});

你应该注意到 .NET 有一种时髦的序列化时间戳的方法可能不适用于 JS,你可能希望将服务器端的日期格式设置为 JavaScript 更容易理解的格式(然后参见 [= 的选项13=])