javascript ajax post

时间:2018-04-10 20:00:49

标签: javascript ajax asp.net-mvc-5

所以我有两个有效的控制器方法:

[HttpGet]
public ActionResult EditWork(string work)
{
    // do the bla bla
    return Json(new {Success = true});
}

[HttpPost]
public ActionResult EditWork(WorkObjet work)
{
    // Do the bla bla!

    var listWork = TempData.Peek("myWorks") as List<WorkObjet>;

    // Edit the value of the correct work object.

    return Json(new {Success = true});
}

他们通过这样的Javascript调用:

function EditWork(event, anc) {
    event.preventDefault();

    var param = anc.attributes["data-id"].nodeValue;

    $.ajax({
        type: 'GET',
        url: @Url.Action("EditWork", "Work"),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: { work: param }
    }).done(function (data) {
        if (data.Success === true) {
            // Update the fields
        } else {
            console.log("Error:" + param);
        }
    }).fail(function (xhr) {
        console.log(xhr.responseText);
    });
}

function SaveEdit(){
    var myWork = GetMyWork() // calls the field via jQuery

    $.ajax({
        type: 'POST',
        url: @Url.Action("EditWork", "Work"),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify({ work: myWork })
    }).done(function (data) {
        if (data.Success === true) {
            // reload the page?
            windows.location.reload();
        } else {
            console.log("Error:" + param);
        }
    }).fail(function (xhr) {
        console.log(xhr.responseText);
    });
}

他们的工作非常好。那么让我们做以下几点:

  1. 点击按钮编辑作品
  2. Controller Get方法通过断点点击EditWork;
  3. 编辑作品,然后保存
  4. 通过断点点击Controller Post方法EditWork,并在列表中更新工作;
  5. 页面刷新
  6. 点击按钮再次编辑
  7. GET方法未通过断点点击旧作会在屏幕上显示。很奇怪。
  8. 编辑作品,然后保存
  9. 使用值...
  10. 命中POST方法

    第七步怎么可能?

1 个答案:

答案 0 :(得分:1)

将此添加到您的GET请求中:

cache: false

默认情况下,jQuery允许浏览器缓存GET Ajax请求的结果。查看documentation了解更多信息。