首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MVC ActionLink从当前url添加所有(可选)参数

MVC ActionLink从当前url添加所有(可选)参数
EN

Stack Overflow用户
提问于 2010-09-23 23:29:16
回答 5查看 15.1K关注 0票数 19

非常有名的ActionLink

代码语言:javascript
复制
 <%: Html.ActionLink("Back to List", "Index")%>

现在,此链接位于我的详细信息视图中。索引视图是一个搜索页。它的URL如下所示:

代码语言:javascript
复制
http://localhost:50152/2011-2012/Instelling/Details/76?gemeente=Dendermonde&postcode=92**&gebruikerscode=VVKSO114421&dossiernr=114421%20&organisatie=CLB

如你所见,有相当多的参数。显然,我希望在返回索引页面时保留所有这些参数,因此我需要将它们添加到ActionLink中。

现在,我已经厌倦了手动做这件事,这对于1来说是可以的,但是对于6来说就不是了。

ActionLink问题:如何将当前URL的所有参数作为可选的 RouteValues**.**返回到中

我一直在找Request.QueryString。这肯定是有原因的。我正在考虑用Global.asax编写一些静态方法来完成这项工作,但还没有成功。也许有一种简单的方法可以做到这一点,我不知道?

编辑:这就是我想出来的(它是有效的)

在global.asax:中

代码语言:javascript
复制
    public static RouteValueDictionary optionalParamters(NameValueCollection c) {
        RouteValueDictionary r = new RouteValueDictionary();
        foreach (string s in c.AllKeys) {
            r.Add(s, c[s]);
        }
        return r;
    }

Details.aspx:

代码语言:javascript
复制
    <%: Html.ActionLink("Back to List", "Index", MVC2_NASTEST.MvcApplication.optionalParamters(Request.QueryString))%>

我最好把这段代码放在哪里?我猜不是在Global.asax里。

编辑2:

代码语言:javascript
复制
using System;
using System.Web.Mvc;

namespace MVC2_NASTEST.Helpers {
    public static class ActionLinkwParamsExtensions {
        public static MvcHtmlString CustomLink(this HtmlHelper helper, string linktext) {
            //here u can use helper to get View context and then routvalue dictionary
            var routevals = helper.ViewContext.RouteData.Values;
            //here u can do whatever u want with route values
            return null;
        }

    }
}


<%@ Import Namespace="MVC2_NASTEST.Helpers" %>
...
<%: Html.ActionLinkwParams("Index") %>
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3779932

复制
相关文章

相似问题

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