假设您有一个列表页面,它是站点上多个实体(如搜索页面)的串联。在操作中整理站点的所有实体,并将它们映射到通用视图模型类型中。
伪:
from articles, posts, projects
orderby rating
select top 50 as 'SearchResult'
我的搜索结果类可能如下所示:
SearchResult { Title, Snippet, Rating }
在这个场景中,视图将没有每个结果“是什么”的上下文,所以它如何生成一个URL来获取更多详细信息,然后应该对结果进行分类?
SearchResult { Title, Snippet, Rating, ResultType }
where ResultType is { Article, Post, Project } enum
这将有效,它将需要视图发现枚举与控制器操作之间的关系。
但是,这将导致可维护性问题,需要对每个新的实体类型或静态内容部分进行分类,并将新类别映射到控制器操作。此外,这还会导致问题,因为..我应该将哪些数据传递给操作?如果没有要传递的数据怎么办?
似乎最佳方案是在操作中生成“更多详细信息”URL,其中包含每个实体的上下文和操作/数据映射。
控制器/操作是否可以生成URL,它们是否应该保持不可知?
事先谢谢。