从局部视图发布更改URL

艾尔

我有联系表的局部视图。

我的问题是表单发布后,控制器将重定向到部分视图的实际URL :(“ LocalHost:/Views/ContactUs/MoreInformationRequest.cshtml”)

我想保留相同的URL,并且仅显示ViewData [“ MsgSent”]消息。

这是对局部视图的调用:

@Html.Partial("~/Views/ContactUs/MoreInformationRequest.cshtml")

风景:

   @using (Html.BeginForm( "MoreInformationRequest","ContactUs"))
    {
      .....

       <input type="submit" value="send" /><br />
       @ViewData["MsgSent"]

     }

控制器:

    [HttpPost]
    public ActionResult MoreInformationRequest(ContactUs contacts)
    {

      .....

        ViewData["MsgSent"] = "Message sent!"
        return View();

    }
艾尔

最初,我想到了这种解决方案-使用以下命令重定向到同一页面:

Request.Redirect("~/");

但是我不喜欢这种解决方案,所以我通过使用客户端代码将数据发送到控制器来解决了这个问题:

    <script>
                    var request;
                    $('#formMoreInformationRequest').submit(function () {

                        var Name = document.getElementById('Name');
                        var Phone = document.getElementById('Phone');

                       // without this the validations in the page are not working.
                        if (Name.value == "") {                            
                            return false;}

                        else if (Phone.value == "") {                           
                            return false; }

                        else {

                            $('#overlay').show()


                            if (request) {
                                request.abort();
                            }

                            // setup some local variables
                            var $form = $(this);

                            // let's select and cache all the fields
                            var $inputs = $form.find("input, select, button, textarea");

                            // serialize the data in the form
                            var serializedData = $form.serialize();


                            // let's disable the inputs for the duration of the ajax request
                            $inputs.prop("disabled", true);


                            // fire off the request to /form.php
                            request = $.ajax({
                                url: "/ContactUs/MoreInformationRequest",
                                type: "post",
                                data: serializedData
                            });


                            // callback handler that will be called on success
                            request.done(function (response, textStatus, jqXHR) {
                                $('#overlay').hide()
                                $("#moreInfoMsg").html("Message Sent!");
                            });

                            // callback handler that will be called on failure
                            request.fail(function (jqXHR, textStatus, errorThrown) {
                                $('#overlay').hide()

                                // log the error to the console
                                alert(
                                    "The following error occured: " +
                                    textStatus, errorThrown
                                );
                            });

                            // callback handler that will be called regardless
                            // if the request failed or succeeded
                            request.always(function () {
                                // reenable the inputs
                                $inputs.prop("disabled", false);
                            });


                            // prevent default posting of form       
                            event.preventDefault();

                        }
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

加载局部视图并同时更改URL

来自分类Dev

从局部视图设置主URL的路由值

来自分类Dev

从局部视图设置主URL的路由值

来自分类Dev

在发布方法期间从局部视图中检索值

来自分类Dev

从局部视图到控制器的ajax发布为null

来自分类Dev

ajax应该发布循环加载的局部视图的当前索引

来自分类Dev

通过 jquery 选择更改事件呈现 mvc 局部视图

来自分类Dev

cakephp更改默认的URL视图

来自分类Dev

更改UI视图模板而不更改URL

来自分类Dev

在反应中,URL被更改,但视图未更改

来自分类Dev

使用计划在多个地方使用的表单发布创建局部视图

来自分类Dev

MVC获取从动态创建的局部视图发布到控制器的模型数据

来自分类Dev

WordPress中的发布URL批量更改

来自分类Dev

如何获取更改后的 url 以发布数据?

来自分类Dev

在SwiftUI中,如何为发布视图更改设置动画?

来自分类Dev

更改发布变量后,SwiftUI视图未更新

来自分类Dev

如何在发布后更改 rails 控制器的视图?

来自分类Dev

局部视图验证摘要

来自分类Dev

获取局部视图数据

来自分类Dev

设置局部视图的大小

来自分类Dev

_布局和局部视图

来自分类Dev

局部视图为空

来自分类Dev

调用局部视图

来自分类Dev

从for循环返回局部视图

来自分类Dev

加载局部视图

来自分类Dev

递归局部视图

来自分类Dev

局部视图验证摘要

来自分类Dev

如何渲染局部视图?

来自分类Dev

使用多个局部视图