使用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);
}

使用Jquery.Ajax更新数据库的问题

我不确定你的代码失败的地方,所以我发布了完整的工作代码如果您正在使用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);
}