我正在爲我的MVC 4控制器提供友好的名稱,我想要做一些類似[ActionName="My-Friendly-Name"]
的風格,但對於整個控制器。C#MVC 4 ControllerName屬性
我找不到任何有關此屬性的信息,那麼我該如何去做呢?另外,我需要添加一個新的MapRoute來處理它嗎?
編輯:
例如,我想路線下面的網址:
http://mysite.com/my-reports/Details/5
被路由到下列的控制器:
[ControllerClass="my-reports"] // This attribute is made up. I'd like to know how to make this functionality
public class ReportsController : Controller
{
//
// GET: /Reports/
public ActionResult Index()
{
return View();
}
public ViewResult Details(int id)
{
Report report = db.Reports.Single(g => g.Id == id);
return View(report);
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Report item)
{
try
{
if (ModelState.IsValid)
{
item.Id = Guid.NewGuid();
_context.Reports.AddObject(item);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(item);
}
catch (Exception)
{
return View(item);
}
}
}
原因是因爲一些路由是基於存儲在數據庫中的值發生的(所以不要把url設置爲'/ Items/5',這個url可以是'/ Media/Music/Somebody-to-Love '),這導致了一些特殊的複雜性,最簡單的解決方法是允許與[ActionName]相同的功能,但對於控制器。如果沒有解決方案,我必須找出另一種方法。我敢肯定,這只是我的第一個想法:) –
很酷,理解,請在我的答案看看更新。 –
我的一些客戶更喜歡http://www.domain.com/produkter而不是http://www.domain.com/product。我不想在我的代碼中擁有一個ProdukterController和混合瑞典語。我已經使用AttributeRouting解決了它,爲我所有的控制器和操作創建自定義路由。 –