尝试使用Ajax .get调用时,我收到500内部服务器错误。我仔细检查了方法名称在get调用中是否与在方法上方的Route中相同。不知道为什么我会收到500错误以及如何解决它。
这是我的jQuery:
$('button').click(function() {
$('#New_Note').submit(function(event) {
event.preventDefault();
var $form = $(this);
url = $form.attr("action");
term = $form.find("input[name='Note']").val();
console.log(url);
var posting = $.post( url, { Note: term } );
var get = $.get("getLastEntry");//This line causes the 500 error
});
这是我的.cs文件中的方法
[HttpGet]
[Route("getLastEntry")]
public IActionResult GetLastEntry()
{
ViewBag.Notes = userFactory.GetLast();
return View();
}
以下是GetLast
方法
public IEnumerable<Home> GetLast()
{
using (IDbConnection dbConnection = Connection)
{
dbConnection.Open();
return dbConnection.Query<Home>("SELECT * FROM notes ORDER BY Id LIMIT 1");
}
}
答案 0 :(得分:1)
你能试试吗?
$('button').click(function(){
$('#New_Note').submit(function(event){
event.preventDefault();
var $form = $( this );
url = $form.attr( "action" );
term = $form.find( "input[name='Note']" ).val();
console.log(url);
var posting = $.post( url, { Note: term } );
var get = $.get("@Url.RouteUrl("getLastEntry")");//Change here
});
});
答案 1 :(得分:1)
500错误说你的路由没问题。您必须阅读服务器响应的错误消息。您可以在浏览器中找到它(通常由F12热键调用的开发人员工具)。此外,您必须在Web.config中使用此项<customErrors mode="Off" />
。
错误可能出现在任何内容中:连接字符串,奇怪的语法using (IDbConnection dbConnection = Connection)
或.cshtml文件。
答案 2 :(得分:0)
您不应该使用GET
进行ajax调用。我已经看到了一些错误的请求被缓存的情况,并且尽管代码很好,仍然会继续提供服务。将协议切换为POST
将为您验证或无效我的答案。