2011-11-25 68 views
0

在MVC3应用程序中,推荐的方法是存储控制器,操作&查询页面的详细信息,然后在后续页面的操作链接中重新使用它们?MVC3推荐的控制器,操作查询重用

例如from page〜/ Home/BlogsByTag?tag = Cloud%20Services列出了一系列博客,什么是捕获控制器的'最佳'方式,动作&查询,然后这些如何应用到'返回列表'动作链接在后续的编辑页面(〜/ Admin/Edit /?Blog = 1234)?

回答

0

如果我理解你是正确的,你想要从引用页面生成一个带有url的ActionLink?

可以读取请求的引用在一个完整的URL方面:

Request.UrlReferrer 

如果你想访问的动作,控制器和查询的部分,你必须通过他们的联系,参数。例如:

Html.ActionLink("Linktext", "Edit", "Admin", null, 
           new { 
            Blog = 1234, 
            ReferringController = "Home", 
            ReferringAction = "BlogsByTag", 
            ReferringQueryParams = ... 
           }); 

然后,您可以在编辑操作中读取该值并将其传递给视图以生成后向链接。

但也许使用history.back()是一个更简单的方法。

+0

我想ActionLink的造成一回〜/主页/ BlogsByTag用户会话的休息吗?标签=后续页面中可能没有此页面作为引荐来源的Cloud%20Services。 – user1065447

+0

好的,问题是,你想在哪里编码值?我的第二种方法是通过url参数从* refer *页面发送值,因为你写了*在后续页面的actionlink中重复使用它们* – Jan

+0

从原始页面(〜/ Home/BlogsByTag?tag = Cloud%20Services)包含博客列表,我想进入选定博客的详细信息页面,然后进入更多页面,例如编辑和/或删除确认页面。在这些页面上,我希望actionlink能够链接回原始页面。 – user1065447

0

您可以使用:

Url.RouteCollection["controller"] 
Url.RouteCollection["action"] 
... 

您需要的变量。对于查询字符串,你可以使用:

的Request.QueryString [ “变量1”]

或者你可以声明控制器:

public ActionResult MyController(string controller, string action, string variable...) 

和变量将被自动地填写。

然后你就可以在Session["refurl"]例如存储该信息(或完整的URL),有效期为

+0

如果我将值存储在会话变量中,动作链接结构的外观如何? – user1065447