示例#1
0
 public ActionResult Register(string link, string title)
 {
     if (!String.IsNullOrEmpty(link))
     {
         var code      = _shortLinkService.Value.Register(link, title, true);
         var shortLink = MyUrlHelper.GetUrl("R", "", null, true) + "?" + code;
         return(Content(shortLink));
     }
     else
     {
         return(Content(String.Empty));
     }
 }
示例#2
0
    public IUrlHelper GetUrlHelper(ActionContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException(nameof(context));
        }
        var httpContext = context.HttpContext;

        if (httpContext == null)
        {
            throw new ArgumentException(nameof(context.HttpContext));
        }
        if (httpContext.Items == null)
        {
            throw new ArgumentException(nameof(context.HttpContext.Items));
        }
        // Perf: Create only one UrlHelper per context
        if (httpContext.Items.TryGetValue(typeof(IUrlHelper), out var value) && value is IUrlHelper)
        {
            return((IUrlHelper)value);
        }
        IUrlHelper urlHelper;
        var        endpointFeature = httpContext.Features.Get <IEndpointFeature>();

        if (endpointFeature?.Endpoint != null)
        {
            var services      = httpContext.RequestServices;
            var linkGenerator = services.GetRequiredService <LinkGenerator>();
            urlHelper = new MyEndpointRoutingUrlHelper(context, linkGenerator);
        }
        else
        {
            urlHelper = new MyUrlHelper(context);
        }
        httpContext.Items[typeof(IUrlHelper)] = urlHelper;
        return(urlHelper);
    }