C# ASP.NET MVC 2:什么&x27;这是一种更像MVC的方式来编写C;“后退”;按钮

C# ASP.NET MVC 2:什么&x27;这是一种更像MVC的方式来编写C;“后退”;按钮,c#,asp.net-mvc,C#,Asp.net Mvc,这是我目前使用的代码: <% Uri MyUrl = Request.UrlReferrer; if( MyUrl != null) Response.Write("<a href=\"" + MyUrl.PathAndQuery + "\">Back</a>"); %> 我认为有一种更“MVC Html助手”的方式来执行“后退”按钮。这可能需要更多关于已经设置的路由的信息、可能的参数列表等,但我不想假设是这样。也许有某种方法可以将u

这是我目前使用的代码:

<% Uri MyUrl = Request.UrlReferrer;
   if( MyUrl != null)
       Response.Write("<a href=\"" + MyUrl.PathAndQuery + "\">Back</a>"); %>


我认为有一种更“MVC Html助手”的方式来执行“后退”按钮。这可能需要更多关于已经设置的路由的信息、可能的参数列表等,但我不想假设是这样。也许有某种方法可以将url与定义的路由相匹配,就像正则表达式的工作方式一样?

好吧,对于其中一种方法,您总是可以像上面所做的那样,但是在HtmlHelper中


正如您所指出的,除非您有一个已知的工作流(例如向导),否则基于路由执行此操作的变量实在太多了。

对于一个工作流,您始终可以执行上面所做的操作,但要在HtmlHelper中执行


正如您所指出的,除非您有一个已知的工作流(例如向导),否则基于路由执行此操作的变量实在太多了。

我建议将其作为视图模型的一部分,并在您的操作中填充。您可以继续使用referer来填充它,或者您甚至可以在您的操作上有一个“back url”参数,以便调用页面可以提供自己的back url。

我建议将其作为视图模型的一部分,在您的操作中填充。您可以继续使用referer来填充它,或者您甚至可以在您的操作上有一个“back url”参数,以便调用页面可以提供自己的back url。

如何在actionfilter或基本控制器类中添加要添加的数据

每次执行一个页面时,它都会将其信息添加到TempData中,下一个页面就会知道引用者是什么。后退按钮本身就是一个HtmlHelper,它将直接从TempData中获取数据


通过这种方式,您还可以消除某些用户在请求中不发送推荐人信息的问题。

在actionfilter或基本控制器类中添加您想要的数据(TempData)怎么样

每次执行一个页面时,它都会将其信息添加到TempData中,下一个页面就会知道引用者是什么。后退按钮本身就是一个HtmlHelper,它将直接从TempData中获取数据

通过这种方式,您还可以消除一些用户在请求中不发送推荐人信息的问题