【问题标题】:ASP.NET MVC : Not sure how to make these routesASP.NET MVC:不确定如何制作这些路线
【发布时间】:2010-09-20 03:28:46
【问题描述】:

我正在尝试制作以下路线.. 目前我正在以 真正 很长的方式解决这个问题.. 即。每个路由都有一个路由实例。

这就是我所追求的……(假设我正在做一个“stackoverflow 网站”)

/                        <-- root site
/page/{page}             <-- root site, but to the page of questions.
/tag/{tag}/page/{page}   <-- as above, but the questions are filtered by tag
/question/ask            <-- this page :P
/question/{subject}      <-- reading about a question

(不……我绝对不是在做一个 stackoverflow 网站 :))

干杯!

(天哪,我有时觉得这一切都很混乱)。

【问题讨论】:

    标签: asp.net-mvc routes


    【解决方案1】:

    我会将最后一个 url 更改为 /question/view/{subject}。 进一步创建 3 个控制器:

    • 页面控制器
    • 标签控制器
    • 问题控制器

    在 Global.asax 中创建这些路由,(以默认路由为例)

    希望这会有所帮助。

    【讨论】:

    • 为评论干杯。我不是在关注我需要制作什么控制器,而是如何正确定义路由......以及有多少路由。
    【解决方案2】:

    对于你的第三个,我会这样做:

    routes.MapRoute("page-tag", "tag/{tag}/page/{page}", new {controller="question", action="FilterByTag"});
    

    您的操作方法可能如下所示:

    public class QuestionController : Controller {
      public ActionResult FilterByTag(string tag, int page) {
        //...
      }
    }
    

    【讨论】:

    • @Phil,如果我使用您的页面标签路由...我需要为 /page 或 /tag 创建新路由吗?或者......我应该为这些设置单独的路线吗?或者它们应该是查询字符串,因为它们是主要操作(列出问题)的次要增值操作。
    • 这取决于你。两者都是有效的方法。有些人不喜欢查询字符串参数,但该视图的许多原因现在已经不复存在。 Google 确实索引查询字符串参数。
    • Phil,如果您必须对项目列表(例如“问题”视图或“产品”视图等)进行分页/排序/过滤,您会怎么做? (发布示例路线/网址来解释您的答案)。请:)
    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 2023-04-02
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多