Asp.net mvc 防止在提交表单asp.net后重新加载页面

Asp.net mvc 防止在提交表单asp.net后重新加载页面,asp.net-mvc,Asp.net Mvc,所以我得到了这个div。在这个div中,我有一个文本区域,它是可编辑的,所以我把它放在一个表单中以提交更改,它工作到现在为止,但我得到了一些让我有点困扰的东西: 提交并保存对数据库的更改后,它会刷新页面,但我只想保存更改,不做其他任何操作。现在我的问题是如何防止它刷新或重定向,并保存更改 这是我的控制器: namespace ChangeLogManager___Mit_Vorlage.Controllers { public class BeschreibungController :

所以我得到了这个div。在这个div中,我有一个文本区域,它是可编辑的,所以我把它放在一个表单中以提交更改,它工作到现在为止,但我得到了一些让我有点困扰的东西: 提交并保存对数据库的更改后,它会刷新页面,但我只想保存更改,不做其他任何操作。现在我的问题是如何防止它刷新或重定向,并保存更改

这是我的控制器:

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");
        });
    });