ViewData和QueryString的替代方案

时间:2012-04-03 06:38:15

标签: model-view-controller c#-3.0

我有一个页面(a.aspx),我从两个不同的页面导航(即这两个页面中的链接导航到a.aspx)

区分我导航到哪个页面a.aspx我使用了下面的代码。

将Querystrings(B1,B2)传递到目标页面,如下所示

Html.ActionLink("test" "Testing", new { Controller = "Stats",prev="B1"},new { @class = "link",target="_self" })
Html.ActionLink("test" "Testing", new { Controller = "Stats",prev="B2"},new { @class = "link",target="_self" })

并且在目标页面控制器的操作中我使用了以下代码

ViewData["prev"] = Request.QueryString["prev"].ToString();

我正在目标页面中使用此ViewData,即a.aspx.This工作正常.. 我不愿意使用Query.string和ViewData来满足上述要求。请为此提出任何其他替代方法。

2 个答案:

答案 0 :(得分:0)

你可以使用它,

获取控制器的名称

 @ViewContext.Controller.ValueProvider.GetValue("controller").RawValue

获取操作的名称

@ViewContext.Controller.ValueProvider.GetValue("action").RawValue

我发现here

答案 1 :(得分:0)

为什么不导航到返回同一视图的两个单独的操作?然后,将模型返回到将指示“从”页面的视图。你会知道你来自哪个页面,因为哪个行动被击中了。它更干净,更简单,更容易维护,而不是试图在查询字符串,视图数据,视图包等中传递这种东西。话虽这么说,如果你不得不做很多这样的事情,创建单独的每次行动都不是真实的