将字符串添加到请求的URL

时间:2014-01-08 20:25:35

标签: .net asp.net-mvc seo

我建立的路线就像访问时返回特定的博客条目一样 看起来像这样

www.mywebsite.com/100

但是我希望在返回页面时我还要将博客标题添加到URL中 对于例如用户可以输入上面的网址,但当他收到网页时,网址必须如下所示:

www.mywebsite.com/100/My-Blog-Title

就像它在Stakoverflow上发生的那样: 我输入此网址

http://stackoverflow.com/questions/11227809/

收到请求后,URL如下所示:

http://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array

如何在我的MVC项目中实现这一目标?任何人都可以帮忙。

请同时评论SEO友好性,同时建议您采用优先方法。

三江源

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用JavaScript。

返回存储在JavaScript变量中的博客标题。

var blogTitle = "My-Blog-Title"

阅读博客标题并阅读此link以更改网址而不重定向。

答案 2 :(得分:0)

如果您打开Chrome开发者工具中的“网络”标签,并将地址(仅限ID)加载到此问题(http://stackoverflow.com/questions/21005768/),您会看到您收到HTTP 301回复 - 永久重定向到友好网址(http://stackoverflow.com/questions/21005768/add-string-to-the-requested-url/)。

要在ASP.NET MVC中对此做出响应,您可以执行以下操作:

public ActionResult GetThingy(int id)
{
    var title = GetTitle(id);
    return RedirectPermanent(Url.Action("GetThingy", new { id = id, title = title} );
}

将重定向到控制器上的另一个操作,如:

public ActionResult GetThingy(int id, string title)
{
    //do your thing here
}