我使用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控制器方法正在调用,那时模型是空的。
答案 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" })";