所以我得到了这个div。在这个div我有一个textarea和它的可编辑,所以我把它放在一个表单提交更改,它工作到目前为止,但我有一些困扰我一点点: 在提交并保存对数据库的更改后,它会刷新页面,但我只想保存更改而不执行任何其他操作。现在我的问题是如何阻止它刷新或重定向,只保存更改?
这是我的控制器:
namespace ChangeLogManager___Mit_Vorlage.Controllers
{
public class BeschreibungController : Controller
{
public JsonResult getText(int xVersionID)
{
ProgrammInfo lInfo = new ProgrammInfo();
var lBeschreibung = lInfo.getBeschreibung(xVersionID);
return Json(lBeschreibung, JsonRequestBehavior.AllowGet);
}
public ActionResult SaveText(BeschreibungModel xData)
{
using (var ctx = new ChangeLog_DEVEntities())
{
var lVersion = (from p in ctx.Version where p.ID == xData.ccVersionID select p).FirstOrDefault();
// var lVersion = ctx.Version.Where(p => p.ID == xData.ccVersionID).FirstOrDefault();
lVersion.Changelog = xData.ccBeschreibung;
ctx.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
}
我知道RedirectToAction
会刷新。是否有可能替代它......没有什么,只是保存所做的更改?
这是我的div(它是表格所在的索引页面中的局部视图):
@model Domain.src.Daten.BeschreibungModel
<link rel="stylesheet" type="text/css" href="~/Content/Site.css" />
@Html.TextAreaFor(x => x.ccBeschreibung)
@Html.HiddenFor(x => x.ccVersionID)
我希望有人可以帮助我
(对不起,如果我的英文有任何错误)
在此先感谢:)
答案 0 :(得分:2)
您需要在按钮点击事件中执行以下操作:
$("#UpdateUserForm").submit(function (e)
{
var isValid = $("#UpdateUserForm").valid();
if (!isValid)
return;
//This is important as it prevents the form being submitted twice
e.preventDefault();
$.ajax({
type: "POST",
url: $("#UpdateUserForm").attr("action"),
data: $("#UpdateUserForm").serialize(),
success: function (response)
{
var status = '';
status = response.Status;
ShowAlert(response.Status, response.Message, status.toLowerCase());
}
}).error(function () {
ShowAlert("An Error Occurred", "An error occurred while attempting to process your request. If the problem persists, please contact your administrator.", "error");
});
});