javascript - 如何使用ajax c#从控制器获取数据
问题描述
如何使用 ajax 从控制器获取数据。
我的控制器中的方法
public ActionResult StartPage()
{
var result = CommonService.GetCurrentDateTime();
ViewBag.DateAndTimeFromDataBase = result ;
return View();
}
和我的阿贾克斯
$(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 请求,您最好将数据作为 JSON 有效负载返回。您可以通过像这样修改代码来做到这一点:
public JsonResult StartPage()
{
var date = CommonService.GetCurrentDateTime();
return Json(new { date });
}
这将向客户端返回一个看起来像这样的有效负载:
{
"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 更易于理解的格式(请参阅 选项DateTime.ToString()
)
推荐阅读
- tensorflow - 是否可以将 TFLite 配置为返回偏差量化为 int8 的模型?
- pm2 - 如何从 systemctl 停止 pm2 进程
- javascript - 过滤javascript异步获取响应
- javascript - SCSS 的 Flexbox 在 Firefox 上正常工作,但在其他浏览器(例如 Chrome、Edge 等)上不能正常工作
- c# - Chrome 未设置会话的 Cookie
- javascript - keep getting empty result on my previous promise
- angular - 如何防止 Angular 工作区中的跨项目?
- ruby-on-rails - Poro 的 FactoryBot 工厂导致未定义的方法“构建”
- python - 导入自己的包和模块的问题
- list - 使用的最佳数据结构