刷新屏幕

时间:2015-07-03 03:01:11

标签: asp.net-mvc

我在视图页面中创建了jquery ajax调用,这成功发布了数据。 但是,如果按ctrl + F5强制浏览器刷新,则会返回旧数据。

如果我关闭浏览器并重新访问该网站,它现在会显示更新的数据。

以下是我在控制器中的行动。

我对MVC.NET相当新,我确信我有些遗漏。 你能告诉我吗?

我真的很感激。

[HttpPost]
[ActionName("EditCategory")]
public ActionResult EditCategory(miniCateObj[] items)
{
    int id = int.Parse(items[0].id.Replace("'",""));
    string newName = items[0].cateName.Replace("'", "");
    ModelState.Remove("CategoryName");
    ModelState.Clear();

    Category model = _categoryService.GetCategoryByCategoryId( id);
    model.CategoryName = newName;

    _categoryService.UpdateCategorySite(model);
    return View(model);
}

以下是我使用

的ajax电话
$.ajax({
    type: "POST",
    url: '@Url.Action("EditCategory", "CloSite")',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({
        "items": [{
            "id": "'" + id + "'",
            "cateName": "'" + obj.val() + "'"
        }]
    }),
    dataType: "application/xml-urlencode",
    success: function () {
        alert('Success');
    },
    error: function (xhr, textStatus, error) {
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
    }
});

另外,我没有使用ORM / Entity Framework。我有问题项目.savechanges()没有更新(在实体框架中),所以我最终编写直接SQL更新如下,

public int UpdateByCategoryId(int categoryId, string cateName) {
    using(var connection = this.Context.Database.Connection) {
        if (string.IsNullOrEmpty(connection.ConnectionString)) connection.ConnectionString = ConfigurationHelper.ConnectionString;
        var query = string.Format(@"UPDATE Categories set CategoryName = '{0}' where Id = {1}", cateName, categoryId);

        return connection.Execute(query);
    }
}

0 个答案:

没有答案