使用Jquery.Ajax更新数据库的问题
本文关键字:问题 数据库 更新 Jquery Ajax 使用 | 更新日期: 2023-09-27 17:49:33
我在一个网站上工作,希望能够更新数据库表上的字段,当一个div被点击。我在堆栈上找到了一些示例代码,但由于某种原因它无法工作,即使它被接受了。我正在使用c# ASP。. NET MVC Razor.
我的JavaScript函数如下:function toggleContent(id, instID) {
var doc = document.getElementsByClassName("messageContent")[id];
$(doc).slideToggle();
$.ajax({
type: 'POST',
url: "@Url.Content('/Messages/MarkSeen/')",
data: {
instanceID : instID
},
dataType: 'json'
});
}
和我的JsonResult如下:
[HttpPost]
public JsonResult MarkSeen(int instanceID)
{
var markSeen = db.MessageInstances.First(mi => mi.MessageInstanceId == instanceID);
if (markSeen.RegisteredPerson.PersonId == CurrentUser.PersonId)
{
markSeen.Seen = true;
db.SaveChanges();
return Json(true);
}
return Json(false);
}
我不确定你的代码失败的地方,所以我发布了完整的工作代码如果您正在使用ApiController,请尝试以下更新以使您的代码正常工作:1. 为WebApiConfig.cs添加路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
2。javascript
$.ajax({
type: "POST",
url: "@Url.Content("/api/lab/MarkSeen")",
data: { "instanceID": instID },
dataType: 'json',
success: function (data) { alert(data)},
error: function () { alert('error'); }
});
3。添加模型以匹配来自ajax请求的json:
public class labModel
{
public int instanceID { get; set; }
}
4。控制器:
[System.Web.Mvc.HttpPost]
public JsonResult<bool> MarkSeen(labModel data)
{
return Json(true);
}