【问题标题】:Page Navigation with MVC3使用 MVC3 进行页面导航
【发布时间】:2012-02-05 21:14:41
【问题描述】:

我目前正在寻找一种在页面之间实现导航的好方法(不使用任何类型的对话框) - 特别是在一个页面由多个其他页面共享的情况下。

示例

共有三个页面:

  • 产品编辑
  • 订单列表项
  • 产品列表

可以从 OrderItemList 和 ProductList 页面导航到 ProductEdit 页面。

ProductEdit 页面有一个取消和更新操作。当用户单击这些操作之一时,我需要控制返回到它来自的页面。

多层次

关于实现这一点的最佳方式的任何想法。我还需要在不止一个层面上支持这项工作。

相关发帖 这都是与 MVC3 相关的,但与另一个 StackOverflow 帖子非常相似:Web page navigation

非常感谢!

【问题讨论】:

  • 您熟悉 ASP.Net-MVC 结构吗? 究竟是什么问题
  • 对 MVC 相当熟悉。到达 ProductEdit 页面时,我如何知道返回到哪里?我对 url referrer 很熟悉,但这种方法在多级场景中不起作用,所以我认为 UrlReferrer 已经过时了。

标签: asp.net asp.net-mvc-3


【解决方案1】:

您可以将 ProductEdit 页面用作局部视图,然后检查 ViewBag.Title 以了解它来自哪个页面。例如:

在 OrderListItem 页面中:

@{ ViewBag.Title = "OrderListItem";}
@Html.Partial("ProductEdit");

在产品列表页面中也是如此。 在 ProductEdit 页面检查:

If ( ViewBag.Title = "OrderListItem")

//以标题为参数向你的控件发送值...

【讨论】:

  • 感谢您的 cmets。我明白你在说什么,但这会将 ProductEdit 页面与请求它的所有其他页面紧密耦合。我应该指出,我希望 ProductEdit 页面是一个单独的页面(即不是 Partial)。也许,在加载 ProductEdit 页面之前,我可以存储(ViewBag 或模型)返回操作、控制器和路由数据)。这行得通吗?
  • 我不太了解你。为什么不能只在必填页面中实现@Html.Partial("ProductEdit")?
  • 因为我想在单独的页面中显示 ProductEdit 视图。我对 Html.Partial 的理解是它将在包含视图中呈现 html - 这不是我想要做的事情 - 我希望将 ProductEdit 视图保留为用户可以导航到的单独页面。我希望这能说明问题 - 如有任何混淆,我们深表歉意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多