在jquery对话框中从部分视图发布操作

时间:2011-01-05 19:15:32

标签: asp.net asp.net-mvc-2

我有一个加载了jquery选项卡的索引页面。在其中一个标签中,我打开了局部视图company.ascx。在其中我有2 RenderActions'一个加载公司标题,另一个加载分支信息。

<%   Html.RenderAction("Compheader", "Home"); %>
<br />
<br />
<%  Html.RenderAction("BranchList", "Branch", new { Id = Request.QueryString[0], pdate = Request.QueryString[1] });   %>

BranchList内,我显示一个分支表,每个分支都有一个与之关联的删除按钮。分支列表上还有一个添加按钮。这两个按钮都打开一个jquery对话框,在其中打开部分视图(acsx)。对话框中有一个提交帖子。

当用户点击插入/添加或删除视图上的提交时,我希望能够刷新BranchList操作,这将获得新的分支列表并显示它。

现在在删除或插入内的帖子上,我的响应重定向到索引页面,刷新整个页面。有人可以告诉我如何使用Html.BeginForm和ajax以干净的方式发布帖子而不是响应重定向。

1 个答案:

答案 0 :(得分:0)

您正在视图中直接访问QueryString,这意味着您没有使用ASP.NET MVC框架的任何优点。你应该在action方法中获取这些值(使用匹配的参数名称作为action方法的构造函数中的QueryString变量),然后将这些值从action方法传递给视图(使用视图模型或ViewData),这样你就没有了直接在视图中访问QueryString。

现在回答你的问题,我认为你做得对。如果从应用程序中获得正确的行为,则不应更改应用程序的重定向后行为。

您正在从部分视图中发布数据,然后进行重定向。这是一种有效的模式,也称为GPG(Get,Post,Get)模式。与简单地将用户发送到“已发布”页面相比,这是有利的,因为它避免了用户在刷新页面时两次发布相同数据。

希望它有所帮助。