2017-01-03 66 views
0

背景使用MVC Razor优化LinkedIn分享空间的最佳方式是什么?

我有一个网址与标题参数在LinkedIn分享:some title

为了能够将此标题添加到URL中,空间需要被%20替换,但显然LinkedIn Share需要双重编码,所以%也需要进行编码。

这意味着空格变为%2520

如果我手动更正我的网址,那么它会在我的LinkedIn上共享。

什么工作

以上进一步思考,我会得到一个LinkedIn共享网址像这样:

https://www.linkedin.com/cws/share?url=http://example.com/entity/1?title=Some%2520title

这会工作。

然而

在我的网页我使用MVC剃刀,显然HTML.Raw()解码%2520%20,这将是不正确的。

问题

什么是打印所需的URL以正确的方式最好?

+1

什么关于使用URL-Shortener API来解决这个问题! ..你有很多选择(google,bitly .. –

+0

@AhmedRagheb:可悲的是,这不是我现在可以做出的决定,我只需要实现一个非常快速的修复,必须按原样工作。 – Spikee

+0

检查我的答案,希望它解决你的问题 –

回答

2

我是在一个新闻门户网站工作之前,我们创建了一个助手方法以替换字符串下划线分享任何空间也避免了这个问题,我认为这是一个很好的快速解决方案

public static string RemoveSpaceFromTitle(this string text) 
{ 
    if (string.IsNullOrWhiteSpace(text)) 
     return text; 

    return text.Replace(" ", "_"); 
} 
+0

这是有效的,但这是令人惊讶的,因为我希望我分享的页面会显示'some_title'作为文本,但它没有。怎么回事?另外,我想我冒着引入错误的风险数据 – Spikee

+1

@Spikee stackoverflow这样做的问题标题和标签,这是一个常见的技巧,以避免这个问题,如果你检查随机网站,你会发现他们这样做 例如:http://edition.cnn.com/2017/01/02/autos/9-luxury-cars-that-will-dominate-the-road-in-2017 –

+0

@Spikee如果它有效,请将其标记为已解决,以便其他人可以使用相同的答案 –

相关问题