Asp.net mvc 防止在提交表单asp.net后重新加载页面
所以我得到了这个div。在这个div中,我有一个文本区域,它是可编辑的,所以我把它放在一个表单中以提交更改,它工作到现在为止,但我得到了一些让我有点困扰的东西: 提交并保存对数据库的更改后,它会刷新页面,但我只想保存更改,不做其他任何操作。现在我的问题是如何防止它刷新或重定向,并保存更改 这是我的控制器:Asp.net mvc 防止在提交表单asp.net后重新加载页面,asp.net-mvc,Asp.net Mvc,所以我得到了这个div。在这个div中,我有一个文本区域,它是可编辑的,所以我把它放在一个表单中以提交更改,它工作到现在为止,但我得到了一些让我有点困扰的东西: 提交并保存对数据库的更改后,它会刷新页面,但我只想保存更改,不做其他任何操作。现在我的问题是如何防止它刷新或重定向,并保存更改 这是我的控制器: namespace ChangeLogManager___Mit_Vorlage.Controllers { public class BeschreibungController :
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");
}
}
我知道,重定向到操作
进行刷新。是否可能有一个替代品可以。。。什么都不喜欢,只是保存所做的更改
这是我的div(它也是表单所在索引页面中的部分视图):
@model Domain.src.Daten.BeschreibungModel
@Html.TextAreaFor(x=>x.ccBeschreibung)
@Html.HiddenFor(x=>x.ccVersionID)
我希望有人能帮助我。(对不起,如果我的英语有任何错误)
提前感谢:)您需要在按钮单击事件中执行以下操作:
$("#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");
});
});
有一种称为ajax调用的方法来实现这一点,而不是Html.beginfom ise ajax.BeginForm helper。为此,我该如何处理我的Html.BeginForm?我是否需要将其更改为上面提到的ajax.BeginForm helper?如果需要,如何更改?我总是手动完成,即使用常规的Html.BeginForm helper。这将创建一个表单,单击“提交”按钮时可以自动提交该表单。您还可以使用jQuery以编程方式完成此操作。我已经更新了示例代码,因为它更具描述性。在这种情况下,在单击submit按钮时进行Ajax调用。您还可以使用类似$(“#UpdateUserForm”).submit()之类的工具以编程方式执行此操作;e.preventeddefault();这很重要,因为它可以防止双重提交。这对我很有帮助,谢谢。我现在正在尽我最大的努力去实现它。很高兴能帮上忙。如果你认为答案是正确的,你能把它标记为正确的吗
$("#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");
});
});