我有以下结构:查看+部分景色相互矛盾的ASP.NET MVC3组合
浏览:
首页
文章
局部视图:
书
类
简介
常见问题
在页面的顶部,在我的头,是一个导航菜单 - 包含调用到我的HomeController类的不同方法的多个Ajax.ActionLinks来请求一个局部视图和然后将该内容放置在我的中心DIV中。所以我可以点击Faq链接,我的页面中心DIV中的内容现在将包含我的Faq的部分视图。现在,我有一个文章视图,看起来完全不同,因此需要将其分离为自己的视图,而不是局部视图,而且我遇到的问题是,如果我单击我的Html.ActionLink以查看“文章“,我浏览到我的文章视图,这是我想要的,但如果我点击其他链接是Ajax.ActionLinks,我需要(以某种方式)视图切换回我的主页视图,以便我然后可以检索请求的部分视图并将其放置到我的中心DIV中。任何想法我怎么能做到这一点?现在,在我的文章视图中调用AJAX.ActionLink时,调用了我的HomeController,但随后尝试替换我的中心DIV中的内容(在我的文章视图中不存在),另外,它不是加载HomeView。
有关如何最好地实现这一点的任何想法?另外,我没有使用Razor引擎。
因此,导航菜单(这是一组链接)驻留在我的Site.Master文件中。这里是我有的一个链接:
<%= Ajax.ActionLink("Book", "LoadBook", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "content", InsertionMode = InsertionMode.Replace })%>
当点击这个链接时,我的HomeController中的LoadBook方法被调用。请参考下面的代码:
public ActionResult LoadBook()
{
return PartialView("Book");
}
以我Home.aspx视图,我有以下代码:
<div id="content">
<% Html.RenderPartial("Intro"); %>
</div>
此代码将自动加载局部视图用于我的“介绍”(导入)由每次初始加载主视图时都是默认的。所以基本上,由于“Articles”的链接是Html.ActionLink(与Ajax.ActionLink相对),当它被点击时,我被带到Articles视图。例如,当我在Articles视图中点击Site.Master标题中的“Book”Ajax.ActionLink时,代码将尝试使用“Book”部分视图更新“content”DIV。只有在主页视图中才需要此行为,原因很明显。那么,在查看与我的主视图不同的视图时,如何为我的Ajax.ActionLinks提供不同的行为?
谢谢!
克里斯
如果您分享relavent代码,它将帮助其他人识别问题... – Rafay