我很困惑为什么我的Ajax调用不起作用。目前,我只需要客户端的Ajax方法来访问我的Controller方法。 我的HTML上的警报命令是POPING 但是不能从客户端访问服务器端。请告知以下我遗失的内容:
调用Controller的操作方法获取数据
<script>
$(document).ready(function () {
$.get("@Url.Action("GetData","Driver")",function(data){
$("#dataForSecond").html(data);
alert("Second ActionResult");
});
});
在我的控制器中获取数据方法只返回:
public ActionResult GetData()
{
logger.AddLog("INTO 2nd Action Method");
var secondData = "I m Dummy";
//System.Threading.Thread.Sleep(500);
logger.AddLog("Setting loggedInAgent Value Again");
// ViewBag.loggedInAgents = "11";
return Json(secondData, JsonRequestBehavior.AllowGet);
}
为了进行测试,我在客户端进行了跟踪,但没有发生REFRESHING,只有POP像以前一样。我的代码是怎么回事,我不知道。
$(function () {
var refreshInterval = 5000;
var url="@Url.Action("GetData","Driver")";
setInterval(function () {
$("#View1").load(url);
}, refreshInterval);
答案 0 :(得分:1)
你正在调用ActionResult,你需要调用JsonResult,这就是为什么不工作,请看下面的例子:
$.ajax({
url: '/Product/List',
type: "GET",
data: { "nrRecs": 4 },
async: true,
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('error');
},
success: function (data) {
alert('ok');
}
});
[HttpGet]
public async Task<JsonResult> List(int nrRecs)
{
var product = db.products.Take(4);
return Json(await product.ToListAsync());
}