Estoy trabajando para proporcionar nombres amigables para mis controladores MVC 4 y quiero hacer algo como el estilo [ActionName="My-Friendly-Name"]
, pero para todo el controlador.C# MVC 4 ControllerName atributo
No pude encontrar ninguna información acerca de tal atributo, entonces ¿cómo iba a hacer eso? Además, ¿tendré que agregar un nuevo MapRoute para manejarlo?
EDIT:
Por ejemplo, me gustaría encaminar la siguiente url:
http://mysite.com/my-reports/Details/5
pueden dirigir a la siguiente controlador:
[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);
}
}
}
La razón es porque algunas de las rutas se basan en valores almacenados en una base de datos (Entonces, en lugar de tener una URL '/ Items/5' la URL puede ser algo como'/Media/Music/Somebody-to-Love ') y esto ha causado algunas complicaciones particulares que la forma más fácil de solucionar sería permitir la misma funcionalidad que' [ActionName] 'pero para los controladores. Si no hay solución, tendré que encontrar otra forma. Estoy seguro de que sí, esta fue solo mi primera idea :) –
Genial, entendido, mira la actualización en mi respuesta, por favor. –
Algunos de mis clientes prefieren http://www.domain.com/produkter en lugar de http://www.domain.com/product. No quiero tener un ProdukterController y mezclar en sueco en mi código. Lo he solucionado usando AttributeRouting para hacer rutas personalizadas para todos mis controladores y acciones. –