Csharp/C#教程:C#MVC 4 ControllerName属性分享


C#MVC 4 ControllerName属性

我正在为我的MVC 4控制器提供友好的名称,我想做一些像[ActionName="My-Friendly-Name"]样式的东西,但对于整个控制器。

我找不到关于这种属性的任何信息,那么我该如何去做呢? 另外,我需要添加一个新的MapRoute来处理它吗?

编辑:

例如,我想路由以下url:

  https://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); } } 

}

我不知道你的问题是否有答案,但即使有问题,为什么世界上你会做这样的事情呢? 为什么不做标准方式:调用控制器类任何你喜欢的东西(只要它有意义)并让它为你调用框架? 为什么要创建两个人工命名约定并在它们之间映射? 我认为没有一个收益,但多重利弊。 比如 – 它更难阅读,更难维护,更难理解,它也是微不足道的,但仍然是对性能的压力……

更新

请看这篇文章,我认为他们确实解决了你所说的问题。

如果对您有任何帮助,请告诉我。

添加与您的特定名称匹配的自定义路线:

 routes.MapRoute( "MyCustomRoute", "My-Friendly-Name/{action}/{id}", new { controller = "ReportsController", action = "Index", id = "" } ); 

现在,包含控制器“My-Friendly-Name”的每个URL都将使用您的新路由。

查看这篇文章 ,特别是它谈论路由格式

上述就是C#学习教程:C#MVC 4 ControllerName属性分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/956424.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐