Asp.Net MVC 4 中的自定义 URL 路由

2023-12-19

我怎样才能像这个网址一样(http://www.domain.com/friend-content-title http://www.domain.com/friendly-content-title)在 Asp.Net MVC 4 中。

注意:该参数始终是动态的。URL 可能不同:“友好内容标题”

我尝试自定义属性,但在 ActionResult 中没有捕获此(友好内容标题)参数。

Views:

  • 首页/索引
  • 主页/视频

行动结果:

    // GET: /Home/        
    public ActionResult Index()
    {
        return View(Latest);
    }

    // GET: /Home/Video        
    public ActionResult Video(string permalink)
    {
        var title = permalink;
        return View();
    }

路由配置:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Home Page",
            url: "{controller}/{action}",
            defaults: new { controller = "Home", action = "Index" }
        );

        routes.MapRoute(
            name: "Video Page",
            url: "{Home}/{permalink}",
            defaults: new { controller = "Home", action = "Video", permalink = "" }
        );

    }

我应该怎么做才能捕获 url (/friend-content-title)?


要启用属性路由,请在配置期间调用 MapMvcAttributeRoutes。以下是代码片段。

     public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
             {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapMvcAttributeRoutes();
             }
        }

在MVC5中,我们可以将属性路由与基于约定的路由结合起来。以下是截取的代码。

        public static void RegisterRoutes(RouteCollection routes)
         {
          routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
          routes.MapMvcAttributeRoutes();
          routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
  }

通过向路由参数添加问号,可以很容易地将 URI 参数设置为可选。我们还可以使用parameter=value 的形式指定默认值。here http://www.dotnet-stuff.com/tutorials/aspnet-mvc/understanding-url-rewriting-and-url-attribute-routing-in-asp-net-mvc-mvc5-with-examples是全文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.Net MVC 4 中的自定义 URL 路由 的相关文章

随机推荐

  • Knockout.js - 传递参数

    我的 Knockout js 遇到问题 我想将用户名传递给函数并在警报时显示它 一些奇怪的事情正在发生 每次当我使用正确的用户名刷新页面时 我都会收到警报 但单击它后我没有收到任何响应 这里有什么问题吗 这是我的代码 ul li class
  • 在 Xcode 4.1 中添加自定义字体

    我想在应用程序中使用自定义字体 我已经在 info Plist 文件中声明了 应用程序提供的字体 并将 label font 设置为名称带 不带 TTF 扩展名的字体 将TTF文件拖入项目并将文件复制到项目中 为品牌创造了一个出路 但仍然没
  • 使用 VBA 在电子邮件中嵌入图像

    下面的代码嵌入了照片但不显示 因为 文件可能已被移动 重命名或删除 请验证链接是否指向正确的文件和位置 我知道文件路径是正确的 Sub mail Dim Sig As String Set myOlApp CreateObject Outl
  • Android IntentService 以空意图触发

    我在 Crashlytics 中看到崩溃 致命异常 java lang NullPointerException 尝试调用 虚方法 int android content Intent getIntExtra java lang Strin
  • 如何更改 TinyMce 编辑器中的默认字体调色板?

    我想添加一些与我的网站主题相匹配的预设颜色 如何更改 TinyMce 中的默认字体调色板 截图 with shadow png http img407 imageshack us img407 4526 screenshotwithshad
  • 不完全是。使用 Cocoa 处理游戏中键盘输入的正确方法是什么?

    假设您正在为 Mac OS X 创建游戏 事实上 假设您正在创建 Quake 只是现在是 2011 年 您更愿意只使用现代的 未弃用的框架 您希望您的游戏在用户按下 或释放 某个键时收到通知 any key 在键盘上 这包括修饰键 例如 S
  • 如何将 Git 中的更改合并到我移动的文件中?

    我移动了一些目录 当我合并时 有许多冲突的文件 因为其他开发人员已经提交了他们的更改 两者都有合并工具和git mergetool说文件被本地或远程删除 参见图片 如何合并这些更改 文件历史记录和重命名检测 你永远不需要担心 Git 中的
  • xcodebuild 构建操作来分发带有剥离 dSYM 的动态框架

    我曾经使用以下方法构建内部开发的动态框架 xcodebuild workspace
  • Jest 无法加载 Primeng css 文件

    我正在使用 Jest 版本 26 6 3 来测试 Angular 组件 对使用的任何组件进行单元测试Primeng的复选框组件 https www primefaces org primeng showcase checkbox在compi
  • 操作系统回调如何工作

    跟进问题 这个问题 https stackoverflow com questions 1223040 c timers in unix 如链接问题中所述 我们有一个 API 它使用事件外观来轮询 select 来处理用户定义的回调 我有一
  • 在 BigQuery 中获取不超过一小时的数据

    尝试使用以下语句 SELECT FROM data example WHERE TIMESTAMP timeCollected lt DATE ADD USEC TO TIMESTAMP NOW 60 MINUTE 从我的 bigquery
  • 使用 Storyboard Segues 关闭 Popover 视图

    我一直在谷歌搜索并在整个堆栈交换中搜索正确的答案 但我似乎找不到它 我所拥有的是通过弹出框 Segue 呈现的弹出框视图 当在弹出框视图内单击按钮时 我希望它被关闭并显示 UIAlert 这是迄今为止我从其他答案中收集的代码 但不起作用 v
  • 创建任务时无用的 Amazon ECS 错误消息

    使用ECS代理容器 https github com aws amazon ecs agent在 Ubuntu 实例上 我可以向我的集群注册代理 我还在该集群和任务定义中创建了一项服务 当我尝试将任务添加到集群时 我收到无用的错误消息 Ru
  • 在哪里初始化我的应用程序的基类 Swift

    我有一个名为Home这是我的应用程序的父类 现在 我想在某个地方初始化这个类 以便我可以从任何我想要的地方访问类中的所有内容 该应用程序的起点是RootViewController 我应该在起点初始化应用程序吗 如果是 我应该如何做才能从应
  • PyCharm:找不到 Anaconda 安装

    在使用 PyCharm 之前 我在 Windows 10 上将 Anaconda 安装在 C ProgramData Anaconda3 中 现在 当我尝试使用 conda env 时 PyCharm 显示 未找到 Anaconda 安装
  • 如何访问或翻译矢量绘图中的文本

    我有一个习惯view它显示一个drawable并检测触摸 它有多个drawable图层 其中一些包含文本 例如 我已将每个 SVG 矢量图形转换为vector drawable并希望能够将文本设置为资源 以便我可以替换不同的翻译 上面 He
  • 创建自托管 Web API 还是使用 Asp.Net Core Web API?

    我有两个选择 如果我使用自行托管 Web ApiOWIN Katana我可以获得性能提升 但如上所述here https forums asp net t 1908235 aspx Self hosting or IIS hosted 我必
  • Rails 按创建日期对记录进行分组

    所以我有一个模型 我想检索记录并按created at字段的日期对它们进行分组 但created at是一个日期时间字段 我只对日期部分感兴趣 所以我正在寻找类似二维数组的东西 第一层是一个以日期字符串为键的哈希 第二层是带有记录的数组 我
  • 我如何子类化 threading.Event?

    在 Python 2 7 5 中 from threading import Event class State Event def init self name super Event self init self name name d
  • Asp.Net MVC 4 中的自定义 URL 路由

    我怎样才能像这个网址一样 http www domain com friend content title http www domain com friendly content title 在 Asp Net MVC 4 中 注意 该参