首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >视图的ASP.NET MVC3组合+部分视图冲突

视图的ASP.NET MVC3组合+部分视图冲突
EN

Stack Overflow用户
提问于 2011-10-01 04:20:30
回答 1查看 270关注 0票数 0

我有以下结构:

视图:

首页

文章

局部视图:

简介

常见问题

在页面顶部的标题中,是一个导航菜单-包含多个Ajax.ActionLinks,它们调用我的HomeController类中的不同方法来获取特定的局部视图,然后将该内容放在中间的DIV.因此,我可以单击Faq链接,页面中心DIV中的内容现在将包含我的Faq的局部视图。现在,我有了一个文章视图,它看起来完全不同,因此需要分离为它自己的视图,而不是局部视图,并且,我遇到的问题是,如果我单击“文章”的Html.ActionLink,我会导航到我的文章视图,这是我想要的,但是如果我单击Ajax.ActionLinks中的其他链接之一,我需要(以某种方式)将视图切换回我的主视图,这样我就可以检索请求的局部视图,并将其放入我的中心DIV.你知道我该怎么做吗?现在,当在我的文章视图上调用AJAX.ActionLink时,它正在调用我的HomeController,但随后试图替换中心DIV中的内容(它不存在于我的文章视图中),另外,它没有加载HomeView。

对如何最好地实现这一点有什么想法吗?另外,我没有使用Razor引擎。

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

代码语言:javascript
运行
复制
  <%= Ajax.ActionLink("Book", "LoadBook", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "content", InsertionMode = InsertionMode.Replace })%>

单击此链接时,将调用我的HomeController中的LoadBook方法。请参考以下代码:

代码语言:javascript
运行
复制
public ActionResult LoadBook()
{
    return PartialView("Book");
}

在我的Home.aspx视图中,我有以下代码:

代码语言:javascript
运行
复制
<div id="content">
   <% Html.RenderPartial("Intro"); %>
</div>

默认情况下,无论何时加载Home视图,此代码都会自动加载我的"intro“(introduction)的分部视图。因此,基本上,由于“文章”的链接是Html.ActionLink (而不是Ajax.ActionLink),所以当单击它时,我将转到文章视图。例如,当我在文章视图中单击Site.Master标题中的"Book“Ajax.ActionLink时,代码将尝试用"Book”局部视图更新"content“DIV。由于显而易见的原因,只有在主视图上才需要此行为。那么,在查看与主视图不同的视图时,我的Ajax.ActionLinks如何具有不同的行为呢?

谢谢!

克里斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-01 04:59:55

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

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

HTML被设计为每个页面都有一个唯一的URL。你在逆流而上,试图做一些不同的事情。假设您想使用片段跳转到页面的其他部分。你不能这么做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7615662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档