asp.net MVC使用jquery URL重定向发布数据不起作用

时间:2015-03-02 17:48:48

标签: jquery asp.net-mvc-4

我使用POST方法将数据PageA(文本框)发送到PageB,并且我在PageB中有编辑链接。如果我单击编辑链接,我想使用我的POST数据返回PageA。我能够使用Jquery Post方法POST数据,但url重定向不起作用。 (我还需要将数据PageB发布到Page C)

查看:PageA

 @using (Html.BeginForm("ControllerName", "PageB", FormMethod.Post))
    {
       //textboxes
    }

网页B:

<a>Edit</a>
 @using (Html.BeginForm("ControllerName", "PageC", FormMethod.Post))
        {
           //textboxes
        }

Jquery的:

 $("a").click(function () {
        $.ajax({
            url: '/ControllerName/PageA',
            type: 'POST',
            data: ModelData,
            contentType: "application/json",
            datatype: "html",
            success: function (data) {
                //window.location = "/ControllerName/PageA";

            },
            error: function (XMLHttpRequest, textStatus, request) {
                alert(XMLHttpRequest.responseText);
            }
        });

    });

控制器:

 [HttpGet]
    public Task<ViewResult>PageA()
        {
            Model model = new Model();

            return Task.FromResult<ViewResult>(View(model));

        }

        [HttpPost]
        public Task<ActionResult> PageA(Model model)
        {
            return Task.FromResult<ActionResult>(View(model));
            //return Task.FromResult<ActionResult>(RedirectToAction("PageA", model));

        }

如果我使用window.location =&#34; / ControllerName / PageA&#34 ;;它重定向到PageA但是GET控制器方法正在调用,那时模型是空的。

1 个答案:

答案 0 :(得分:0)

您需要做的是获取get方法的输入并测试它

public Task<ViewResult> PageA(int editID = 0)

然后测试。如果没有通过,则加载空白页面,如果通过,则使用该ID填充模型以发送到视图。
然后确保通过window.location传递要编辑的ID

window.location = "@Url.Action("ControllerName", "PageA", new { editID = "id to be edited here" })";