我有一个母版页,呈现以下PartialView:
<% Html.RenderPartial("AddPage); %>
AddPage Controller如下所示:
public class PagController : Controller
{
[HttpGet]
public PartialViewResult AddPage()
{
return PartialView();
}
[HttpPost]
public PartialViewResult AddPage(FormCollection forms)
{
//some logic here
// some view data here
return PartialView();
}
}
视图如下:
<% using (Html.BeginForm("AddPage", "Page", FormMethod.Post, new { ID = "PageManager" })){%>
<%= Html.TextBox("txtAddPage") %>
<input type="submit" value="AddPage" />
<%} %>
我的问题是,当我点击提交时,我会重定向到:http://localhost:1234/Page/AddPage,而我只想提交部分视图,并在需要时返回一些基本视图数据,并保持相同页。
我在这里度过了金发时光吗?因为我知道我之前已经这样做了
编辑 - 此部分视图以多个页面呈现,而不仅仅是一个。
答案 0 :(得分:0)
如果您想提交并仅重新加载部分页面,则需要使用AJAX。执行此操作的最基本方法是在UpdatePanel
。
答案 1 :(得分:0)
这有点棘手,因为你必须知道回去哪里。我建议你改变你的视图并添加两个额外的隐藏字段(或者一个并解析它的值 - 如你所愿)并将当前控制器/动作值存储在其中。
然后,您可以在POST操作中使用此数据返回RedirectResult
,如:
return RedirectToAction("action_from_field", "controller_from_field");
您始终可以使用Ajax提交数据,在这种情况下,您的回发网址可以是您想要的任何内容。在您的情况下,它应该是当前页面URL。 编辑:在您的特定情况下,Ajax将是首选解决方案。