我有一个 ASP.NET MVC Web 应用程序,我希望在一个页面上显示一个项目表,其中包含指向该项目详细信息的链接。很基本。但是,我希望在列表中显示的项目都是公共基本类型的子类,因此链接需要引用不同的控制器操作。
所以,我的问题是:我应该在哪里/如何构建这些链接(参见下面的示例)?
我已经可以通过多种方式实现我的目标(例如,在将业务对象映射到视图模型时构建路由,在视图模型中使用标志或魔术字符串,具有选择适当视图的单个“基本”控制器操作等)但似乎没有一个特别“干净”,所以这更多的是关于最佳实践的问题,而不是机制问题。
例如,假设我的“作业”表如下所示:
Id <OtherCommonFields> Type Name Link
1 <some data> Event Some event /event/1
4 <some data> Task Some task /task/4
3 <some data> Event Another event /event/3
2 <some data> Task Another task /task/2
5 <some data> Event One more event /event/5
其中“任务”和“事件”都是“分配”的子类。