在Ajax函数中找不到该资源

时间:2013-05-21 01:17:24

标签: c# ajax asp.net-mvc

我正在使用C#asp.net mvc。 我在家庭控制器中编写了一个Ajax函数 - > index.cshtml。

<script type="text/javascript">

    $(document).ready(function () {       

        $.ajax({
            type: 'POST',
            dataType: 'html',
            url: '@Url.Action("getAlerts","Home")',
            data: ({}),
            success: function (data) {
                $('#alertList').html(data);


            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
            }
        });

    }); 


  </script>

这是我在家庭控制器中的功能

public IList<tblInsurance> getAlertsIns()
        {
            var query = (from i in db.tblInsurances
                        where i.status == true && i.EndDate <= DateTime.Today.AddDays(7)
                         select i).ToList(); ;


            return query;
        }

        public string getAlerts()
        {
            string htmlval = "";


            var InsExpirList = getAlertsIns();


            if (InsExpirList != null)
            {
                foreach (var item in InsExpirList)
                {
                    htmlval += item.tblContractor.Fname + " " + item.EndDate + "<br />";
                }
            }

            return htmlval;
        }

但是,这是错误,它说“The resource cannot be found。”

POST http://localhost:49368/Home/getAlerts  404 Not Found 

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:3)

如果您希望控制器操作接受POST,则必须使用指定该事实的属性对其进行修饰:

[HttpPost]
public string getAlerts()
{
    // ...
}

但是,在这种情况下,GET请求似乎更合适(毕竟您的操作称为getAlerts)。如果是这种情况,您可以省略接受的动词,或使用[HttpGet]代替。您还必须更改您的AJAX请求:

$.ajax({
    type: 'GET',
    dataType: 'html',
    url: '@Url.Action("getAlerts","Home")',
    /* ... */
});