简体   繁体   English

jQuery不调用asp.net MVC中的控制器

[英]JQuery not calling controller in asp.net mvc

I am trying to make a call from views to controller using jquery. 我试图使用jquery从视图到控制器进行调用。 however it never call controller. 但是它永远不会调用控制器。

I have a Umbraco 7.1.2 website in asp.net MVC 4 application. 我在asp.net MVC 4应用程序中有一个Umbraco 7.1.2网站。

My JS 我的JS

var dp = jQuery;
dp.noConflict();
dp(document).ready(function() {
    GetTestimonials();
});

function GetTestimonials() {
   dp.ajax({
        type: 'GET',
        url: '/Home/GetTestimonialsList',
        cache: false,
        success: function (data) {
            dp.each(data, function (index, val) {
                alert(val.Name + val.Comment + val.Date);
            });
        },
        error: function () {
            alert("error");
        }
    });
}

Then my controller 然后我的控制器

[HttpGet]
public JsonResult GetTestimonialsList()
{
     var model = _spdb.TestimonialDetails.Where(t => t.Status == Enums.TestimonialsStatus.approved).Select(t => new { t.Comment, t.Name, t.Date});
     return Json(model, JsonRequestBehavior.AllowGet);
}

I put a breakpoint on the controller, it never got called. 我在控制器上设置了一个断点,但从未被调用。

On the browser, no errors were raised with jquery. 在浏览器上,jQuery不会引发任何错误。

However it always triggers alert("error"); 但是,它总是触发alert(“ error”); when page loads. 页面加载时。

I called console.log("test"); 我叫console.log(“ test”); it displays on the browser debug. 它显示在浏览器调试中。

On same page I am making a form post to controller using jquery and it has no problem at all. 在同一页面上,我正在使用jquery向控制器发布表单,这完全没有问题。

the query from db gives me the data right. 从数据库查询给我的数据权。

What am I doing wrong? 我究竟做错了什么?

Thanks a lot 非常感谢

Ok, found the solution. 好的,找到解决方案。 I changed the URL to url: '/umbraco/surface/home/GetTestimonialsList' , and works fine. 我将URL更改为url: '/umbraco/surface/home/GetTestimonialsList' ,并且工作正常。

Try this. 尝试这个。 You are returning IQuerable. 您正在返回IQuerable。

[HttpGet]
public JsonResult GetTestimonialsList()
{
     var model = _spdb.TestimonialDetails.Where(t => t.Status == Enums.TestimonialsStatus.approved).Select(t => new { t.Comment, t.Name, t.Date}).ToList();
     return Json(model, JsonRequestBehavior.AllowGet);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM