【问题标题】:Add a global querystring paramter to T4MVC generated links将全局查询字符串参数添加到 T4MVC 生成链接
【发布时间】:2018-03-29 08:30:06
【问题描述】:

如何向 T4MVC 添加一个钩子,以便当我使用 T4MVC 获得指向操作的链接时,它会检查当前请求是否有参数,比如 PIN=1234。如果存在,我希望将此参数添加到生成的链接中。

【问题讨论】:

    标签: asp.net-mvc t4mvc


    【解决方案1】:

    我为 UrlHelper 创建了一个扩展方法,它包装了 T4MVC 的 UrlHelper 扩展方法。这将为从 T4MVC 生成的每个链接添加所需的附加参数。

    public static class T4MVCHelpers
    {
        /// <summary>
        /// Returns a T4MVC generated url, passing along PIN
        /// </summary>
        public static string ActionUrl(this UrlHelper urlHelper, ActionResult result)
        {
            var pin = urlHelper.RequestContext.HttpContext.Request["Pin"];
            if (!string.IsNullOrEmpty(pin))
            {
                result.AddRouteValue("Pin", pin);
            }
            return urlHelper.Action(result);
        }
    }
    

    然后我总是调用这个包装器方法而不是 T4MVC 的方法

    var Url.ActionUrl(MVC.SomeController.Index(1));
    

    现在取决于请求的 url。如果请求的 url 没有 pin 参数,它将如下所示

    /SomeController/Index?param1=1
    

    现在取决于请求的 url。如果请求的 url 有 PIN=123,它将如下所示

    /SomeController/Index?param1=1&PIN=123
    

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 1970-01-01
      • 2011-02-11
      • 2012-05-31
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      相关资源
      最近更新 更多