ASP.NET MVC3视图和#x2B;局部观点冲突

ASP.NET MVC3视图和#x2B;局部观点冲突,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-ajax,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Ajax,我的结构如下: 观点: 家 文章 局部视图: 书 班级 介绍 常见问题 在页面顶部的“我的标题”中有一个导航菜单,其中包含多个Ajax.ActionLinks,它们调用我的HomeController类中的不同方法来获取特定的局部视图,然后将该内容放置在我的中心分区中。因此,我可以单击常见问题解答链接,现在,我的页面中心DIV中的内容将包含我常见问题的部分视图。现在,我有一个看起来完全不同的Articles视图,因此需要将其分开,因为它是自己的视图,而不是局部视图,而且,我遇到的问题是,如果我单

我的结构如下:

观点:

文章

局部视图:

班级

介绍

常见问题

在页面顶部的“我的标题”中有一个导航菜单,其中包含多个Ajax.ActionLinks,它们调用我的HomeController类中的不同方法来获取特定的局部视图,然后将该内容放置在我的中心分区中。因此,我可以单击常见问题解答链接,现在,我的页面中心DIV中的内容将包含我常见问题的部分视图。现在,我有一个看起来完全不同的Articles视图,因此需要将其分开,因为它是自己的视图,而不是局部视图,而且,我遇到的问题是,如果我单击“Articles”的Html.ActionLink,我会被导航到我想要的Articles视图,但是,如果我单击其他链接中的一个是Ajax.ActionLinks,我需要(不知何故)将视图更改回我的主视图,这样我就可以检索请求的局部视图并将其放置到我的中心DIV中。你知道我该怎么做吗?现在,在my Articles视图中调用AJAX.ActionLink时,它正在调用my HomeController,但随后尝试替换my center DIV中的内容(在my Articles视图中不存在),此外,它没有加载HomeView

有没有关于如何最好地实现这一点的想法?另外,我没有使用剃须刀引擎

因此,导航菜单(一组链接)驻留在我的Site.Master文件中。以下是我的一个链接:

  <%= Ajax.ActionLink("Book", "LoadBook", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "content", InsertionMode = InsertionMode.Replace })%>
在my Home.aspx视图中,我有以下代码:

<div id="content">
   <% Html.RenderPartial("Intro"); %>
</div>

在初始加载主视图时,默认情况下,此代码将自动加载我的“简介”(简介)的部分视图。所以基本上,因为“Articles”的链接是Html.ActionLink(与Ajax.ActionLink相反),所以当它被点击时,我被带到Articles视图。例如,当我在文章视图中单击我的Site.Master标题中的“Book”Ajax.ActionLink时,代码将尝试用“Book”部分视图更新“content”DIV。出于明显的原因,只有在主视图中才需要此行为。那么,在查看与主视图不同的视图时,我的Ajax.ActionLinks如何有不同的行为

谢谢


克里斯

这种架构会给你带来很多问题。对于stanrtes,您不能链接到任何页面。所有内容都发生在主页上

对于GMail这样的应用程序来说,这是可行的,但大多数人都会困惑,为什么他们不能保存页面的快捷方式,或者发送链接给朋友


HTML设计为每个页面都有一个唯一的URL。你在努力做一些不同的事情。假设您想使用片段跳转到页面的其他部分。你不能那样做。

如果你分享相关代码,它将帮助其他人发现问题……我感谢你的意见,但是我想在不替换体系结构的情况下寻求一些帮助来解决我的问题。你的回答实际上让我将所有内容分解为各自的视图。@Chris-与其说是视图,不如说是操作方法。视图只是数据的视图。动作方法是页面的中心枢纽(即控制器方法)。您可以采用相同的视图,并使用不同的操作方法填充它,从而获得不同的结果。
<div id="content">
   <% Html.RenderPartial("Intro"); %>
</div>