我有以下结构:
视图:
首页
文章
局部视图:
书
类
简介
常见问题
在页面顶部的标题中,是一个导航菜单-包含多个Ajax.ActionLinks,它们调用我的HomeController类中的不同方法来获取特定的局部视图,然后将该内容放在中间的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>
默认情况下,无论何时加载Home视图,此代码都会自动加载我的"intro“(introduction)的分部视图。因此,基本上,由于“文章”的链接是Html.ActionLink (而不是Ajax.ActionLink),所以当单击它时,我将转到文章视图。例如,当我在文章视图中单击Site.Master标题中的"Book“Ajax.ActionLink时,代码将尝试用"Book”局部视图更新"content“DIV。由于显而易见的原因,只有在主视图上才需要此行为。那么,在查看与主视图不同的视图时,我的Ajax.ActionLinks如何具有不同的行为呢?
谢谢!
克里斯
发布于 2011-10-01 04:59:55
这种架构会给你带来很多问题。对于stanrtes,您不能链接到任何页面。你所有的内容都会出现在你的主页上。
对于像GMail这样的应用程序来说,这是可行的,但大多数人会感到困惑,为什么他们不能保存页面的快捷方式,或者向朋友发送链接。
HTML被设计为每个页面都有一个唯一的URL。你在逆流而上,试图做一些不同的事情。假设您想使用片段跳转到页面的其他部分。你不能这么做。
https://stackoverflow.com/questions/7615662
复制相似问题