Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ajax ASP.NET发布文章_Javascript_Asp.net_Asp.net Mvc_Asp.net Ajax - Fatal编程技术网

Javascript 使用ajax ASP.NET发布文章

Javascript 使用ajax ASP.NET发布文章,javascript,asp.net,asp.net-mvc,asp.net-ajax,Javascript,Asp.net,Asp.net Mvc,Asp.net Ajax,控制器 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Index(Contact contact) { using (LawContext DB = new LawContext()) { if (ModelState.IsValid) { DB.Contact.Add(contact

控制器

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Index(Contact contact)
    {
        using (LawContext DB = new LawContext())
        {
            if (ModelState.IsValid)
            {
                DB.Contact.Add(contact);
                DB.SaveChanges();
                return Json("OK");
            }

            return View();
        }
    }
看法

我不明白为什么会这样 通常不需要发出警报? 我怎样才能正确地做到这一点?我需要你的帮助。 我研究过很多例子。 我想我失去了不用问就能做到的希望


我希望工作顺利。

尝试将提交按钮更改为:

或者您可以保持原样,在Ajax调用中执行以下操作:

$(document).ready(function () {
    $("#btn_contact").click(function (event) {
        event.preventDefault();

        $.ajax(
            {
                type: "POST",
                url: "Contact/Index", 
                data: { 
                    Lastname: $("#Lastname").val(),
                    Mail: $("#Mail").val(),
                    Phone: $("#Phone").val(),
                    Message: $("#Message").val()
                },
                dataType: "json",
                async: true,
                processData: false,
                cache: false,
                contentType: "application/json; charsetset=utf8",
                success: function (data) {
                    alert('success');
                },
                failure: function (data) {
                    alert('failure');
                },
                error: function (data) {
                    alert('error');
                }
            });
    });
});

这是为了防止提交类型按钮的默认行为,该按钮将表单发送到操作url。您现在的做法是使用表单提交按钮调用ContactController上的索引操作,该操作返回视图,这就是为什么空白页面显示ok。如果您想使用ajax调用相同的操作,请尝试使用普通按钮,为其提供id btn\U联系人。代码的其余部分看起来不错。我还没有测试过它,但它应该会弹出一个警报。您可以同时进行ajax调用和正常提交。您需要取消默认提交-$btn\U联系人。单击功能e{e.preventDefault;$.ajax….或添加return false;,作为方法中的最后一行代码。作为旁注,没有必要在if块中包装@Html.ValidationSummary。此外,return视图;没有任何意义,因为您从未对所创建的视图执行任何操作return@StephenMuecke当我没有检查时,我给出的样式似乎是空的,作为一个侧面没有te,只需使用数据:$'form'。序列化并删除contentType:application/json;charsetset=utf8,当您发布ajax文章时,POST方法中的模型甚至不会与当前代码绑定。您还可以删除async:true,这是默认值
$(document).ready(function () {
    $("#btn_contact").click(function () {

        $.ajax(
            {
                type: "POST",
                url: "Contact/Index", 
                data: { 
                    Lastname: $("#Lastname").val(),
                    Mail: $("#Mail").val(),
                    Phone: $("#Phone").val(),
                    Message: $("#Message").val()
                },
                dataType: "json",
                async: true,
                processData: false,
                cache: false,
                contentType: "application/json; charsetset=utf8",
                success: function (data) {
                    alert('success');
                },
                failure: function (data) {
                    alert('failure');
                },
                error: function (data) {
                    alert('error');
                }
            });
    });
});
$(document).ready(function () {
    $("#btn_contact").click(function (event) {
        event.preventDefault();

        $.ajax(
            {
                type: "POST",
                url: "Contact/Index", 
                data: { 
                    Lastname: $("#Lastname").val(),
                    Mail: $("#Mail").val(),
                    Phone: $("#Phone").val(),
                    Message: $("#Message").val()
                },
                dataType: "json",
                async: true,
                processData: false,
                cache: false,
                contentType: "application/json; charsetset=utf8",
                success: function (data) {
                    alert('success');
                },
                failure: function (data) {
                    alert('failure');
                },
                error: function (data) {
                    alert('error');
                }
            });
    });
});