Cũng có nhiều người hỏi và nhờ post bài hướng dẫn để Rewrite URL asp net MVC4, MVC5 chuyển đổi link thân thiện chuẩn SEO
nên hôm nay mình post bài này để nhằm giúp các bạn tham khảo và trao đổi để nâng cao kinh nghiệm.

RewriteURL ASP MVC

Mình đã từng làm và cũng đã gọi là tạm biết rành về Rewrite URL asp net MVC4, trước tiên mình demo:
các bạn click vào link này: thiet ke web chuan seo sẽ thấy có link như sau:

itshare24h.com/danh-muc-thiet-ke-web/thiet-ke-web-chuan-seo-google/5

tức cái này đã được mình Rewrite URL trên MVC5 để chuyển đổi link thân thiện và chuẩn SEO.

Bây giờ mình đi vào phân tích và hướng dẫn nhé:

Trong MVC4, thì có 3 phần Model – View – Controller, thì đối với bài viết này mình sử dụng cả 3 và phần Global.asax

1. Trong file Global.asax các bạn thêm đoạn code sau:

//Detail Router by E-Groups.VN
routes.MapRoute(
name: “NewDetail”,
url: “chi-tiet/{category_name}/{Post_name}/{id}”,
defaults: new
{
controller = “Home”,
action = “Detail”,
category_name = UrlParameter.Optional,
Post_name = UrlParameter.Optional,
id = UrlParameter.Optional
}
);

lưu ý để dùng nó thì các bạn phải khai báo thư viện sau:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

nếu thấy trong file Global.asax thiếu thư viện nào thì các bạn copy của mình thêm vào nhé.

2. Trong View thì trong phần Home:

tại các file đầu mà bạn muốn Rewrite URL asp net MVC4, 5 để khi click vào link thì sẽ đến phần đích theo ý bạn, thì làm như sau:

ví dụ mình có title là: tin tức 1 và chi tiết của nó có link là /Home/Detail/1 
trong data mình có 1 table tintuc (id, tieude, mota, chitiet, idcha), 1 table danhmuc(idcha, tieude)

thì trong file Index.cshtml mình xử lý như sau:

@foreach (var tintuc in Model.News)
{

< a href=”@Url.RouteUrl(“NewDetail”, new {category_name =Url.ToFriendlyUrl(tintuc.danhmuccha.tieude), Post_name =Url.ToFriendlyUrl(tintuc.tieude), id = tintuc.id })”> @tintuc.tieude < /a >

}

//lưu ý a và /a là thẻ đóng và thẻ mở của thẻ < a > nhé !

và nhớ trong Controller các bạn phải khai báo Tintucs qua model nhé:

var tintuc = db.tintuc..ToList();
 
var HomeModel = new HomeModel()
{
Tintucs = tintuc
};
 
return View(HomeModel);

trong Model:

 

public class HomeModel
{
public List Tintucs;
}


Do mình hướng dẫn và gõ bằng tay từng chữ nên có thể sai xót tý xíu, các bạn check lại kỹ hơn nhé ! Hoặc cần hỗ trợ gì thì comment bên dưới nhé !

ĐỂ LẠI PHẢN HỒI CỦA BẠN TẠI ĐÂY

Phản hồi về bài viết này

2 COMMENTS

  1. Thanks bài viết, mình đã fix được lỗi này ok, cứ bảo sao trc mình click vào 1 số link bị lỗi do rewrite url

  2. Whаt’ѕ ᥙp, Ι wish for to ѕսbscribe for this website to take lɑtest upԁatеs, thus where cɑn i do it pleasе help.

LEAVE A REPLY


*