0
可以说我需要创建一个搜索页面。该网页上有:mvc视图中的复杂网址 - 谁负责构建它们?
- 与许多搜索参数(参数1,参数2,...,paramN)
- 的结果项
- 寻呼机
- 布局开关链接列表复杂的搜索过滤器(列表或表格视图)
我将视图模型从我的动作传递给视图,其中包含有关当前搜索参数值(来自url)和一些“猜测”参数(它们不是直接来自url)例如,如果用户这样做es不指定区域,我们可以从他的ip中猜出它)。现在
,在寻呼机每一个环节我不得不写这样
<a href="@Url.Action(null, new { page = n, param1, param2, ..., paramN, region })">...
对于布局切换链接代码,我得写类似,但不同的代码:
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.List, param1, param2, ..., paramN, region })">list</a>
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.Table, param1, param2, ..., paramN, region })">table</a>
我不喜欢的是,有多少代码泄漏到视图中。这很难维护,很难测试。
所以我徘徊正在构建这样复杂的页面的url是视图或行动的责任?
你的建议的问题是,我需要不同的参数寻呼机和显示模式的网址。 – 2013-03-08 05:10:43
这是怎么回事?创建2个RouteValueDictionary对象,每个Url一个。 – Nenad 2013-03-08 07:58:35
然后,最好在内部完全构建url内部的路由 - 这些自定义路由值在他们创建的非常特定的url之外没有用处。 – 2013-03-08 08:17:40