我正在使用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
我的代码出了什么问题?
答案 0 :(得分:3)
如果您希望控制器操作接受POST
,则必须使用指定该事实的属性对其进行修饰:
[HttpPost]
public string getAlerts()
{
// ...
}
但是,在这种情况下,GET
请求似乎更合适(毕竟您的操作称为getAlerts
)。如果是这种情况,您可以省略接受的动词,或使用[HttpGet]
代替。您还必须更改您的AJAX请求:
$.ajax({
type: 'GET',
dataType: 'html',
url: '@Url.Action("getAlerts","Home")',
/* ... */
});