ASP.NET MVC嵌入了视图

时间:2013-06-28 19:11:45

标签: asp.net-mvc

我是ASP.NET& MVC(虽然没有编程)。观看视频并加快速度。我主要是来自桌面世界,所以我不是回帖的忠实粉丝。当然,我倾向于ajax。

在MVC中,在我们的控制器中,我们通常会回发到View(html页面)。 我的问题是,我们可以将视图嵌入到1个主视图中吗?每个请求的想法都是对控制器的ajax调用,它将确定需要返回的视图作为要嵌入的html内容进入现有页面。因为我们可以通过javascript返回的视图所做的所有很酷的视觉客户端技巧,导致没有回发帖子和更流畅的用户体验。想想变形,褪色,滑动等等。

作为用户,我希望点击链接,让页面消失,然后淡入整个新页面。

我可能表现出我对这个领域不熟悉的无知,但这似乎很有可能。

1 个答案:

答案 0 :(得分:2)

首先,MVC中没有Postback的概念。这是一种将数据传递到服务器的Web窗体策略。 Controller不进行任何回发查看。您必须了解的是控制器负责,比方说,准备信息。此信息将传递给视图,以便View以适合的方式显示。控制器返回一个结果并说明应该使用哪个视图以满足用户的请求。

用户可以使用表单中的表单从客户端提交数据,以查看某个控制器中的操作。控制器接收信息,以特定方式处理信息并对其执行某些操作,例如将其存储在某些数据源中。这不像Web表单中的回发概念。

您在问题中描述的是SPA应用程序的工作方式,但您必须了解即使在SPA应用程序中,也不会始终预加载视图。如果您有大型应用程序,情况就是如此。

通过Ajax下载视图,实际上是部分视图是完全正常的,因此不应该不惜一切代价避免它。稍后当您通过Ajax获取视图时,您可以应用jQuery过滤器和特效。

更新:控制器返回操作结果。正如我猜测的那样,这些结果的基类是ActionResult。许多其他类继承自此类。例如,ViewResult是最常用的,也是此答案的主题。您还可以使用FileResult来返回文件,RedirectToRouteResult来执行重定向,等等。所有这些都是行动结果。在MVC中返回视图意味着:“为了向用户显示此数据,请使用此视图或部分视图。”

当您请求(发出HTTP GET方法)时,控制器将向您返回一个视图,当您发布数据(发出HTTP POST方法)时,控制器将执行某些操作并执行重定向,之后它通常会返回视图,或返回文件等.MVC中的回发本质上不存在。例如,在Web窗体中,如果您单击某个按钮或更改AutoPostBack设置为true的下拉框中的值,则会启动回发并发送ViewState到服务器。 MVC没有那种触发回发的机制。您可以提交表单或使用Ajax执行GET请求以检索信息,也可以使用POST将数据作为JSON提交回服务器。

因此,当您提出查看页面的请求时,它不是回发。当您将表单数据发布到服务器时,它不是回发,它是提交数据,与Web窗体回发不同。

我希望现在能帮到你。