2012-12-03 56 views

回答

2

那么,从技术上说,你可以从局部视图做一个正常的回发。但是这往往会打败一个局部点:

  1. 整个页面将不得不重新加载,这意味着局部视图回发的结果将需要一个完整的页面。
  2. 部分视图的模块化受到影响,因为其回发的结果不属于部分视图的范围(即部分视图需要了解整个当前页面)。

因此,从局部视图执行非AJAX回发是一件不规则的事情。但有些情况下,它将是有用的/适当的。考虑例如“登录”部分:您可能想要将凭证发回特定的控制器/操作,并将该操作重定向回当前页面。在这种情况下,你可以合理地使用非AJAX表单。

+0

没错。重定向解决方案适用于许多情况,但在“登录”示例中,用户将错误凭证发送回操作,并且想要显示警告消息,证书无效。这意味着您需要使用ViewBag或Model来将消息发送到不可能的部分视图。 我认为在重定向的情况下,我们可以使用TempData找出有消息,但有没有更好的方法? – Mori

+1

@Morteza我同意尽可能避免TempData,以便测试性/完整性。您始终可以使用嵌套/基本模型或会话:如果每个页面都需要登录信息,请使用包含当前登录名的“BaseViewModel”,或将“LoginModel”放入会话中。 – McGarnagle

1

具有提交的局部视图内部按钮,唯一的方法“以有一个提交的局部视图内按钮被使用Ajax技术来提交表单的唯一方法”是使用阿贾克斯技巧提交表格

你没有说你从哪里得到报价,但这是不对的。

您从部分视图中提交表单的方式与您在主视图中提交表单的方式完全相同。您可以使用自定义字段或通过强制键入局部视图来完成此操作。你哪里挂了?

+0

看到上面的帖子。 – Mori

相关问题