我在视图页面中创建了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);
}
}