ASP.NET MVC:出现空 ActionLink

2023-12-07

我使用默认路由,因此不需要指定控制器。

routes.MapRoute(
    "Default", 
    "{action}/{id}", 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

有了这个,我可以创建类似 myapp.com/Customers 而不是 myapp.com/Home/Customers 的 URL

当我在本地测试时,一切都很好。当我上传实时版本时,使用 Html.ActionLink 生成的任何链接都是空的。我知道我正确使用了 Html.ActionLink,因为它在本地运行良好:

//                   Title                 Action      Controller
<%: Html.ActionLink("Manage My Settings", "Settings", "Home") %>

我已经删除了除默认值之外的所有路由,尝试指定带有和不带有控制器的 ActionLink 等。我什至尝试恢复为在路由中包含控制器,例如:

"{controller}/{action}/{id}"

现场没有任何效果。一切都在本地进行。有点发疯了。

UPDATE:

好吧,有了一个奇怪的发现。实际上,我在 id 之后还有另一个可选的 UrlParameter,称为 page。我愚蠢地没有将其包含在示例中,因为我认为这没有什么区别。如果我把它拿出来,一切似乎都会奏效。

所以,实际上,这是有效的:

routes.MapRoute(
   "Default", 
   "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

and this works!

routes.MapRoute(
   "Default", 
   "{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

but this does Not work

routes.MapRoute(
   "Default", 
   "{action}/{id}/{page}", 
    new { controller = "Home", action = "Index", 
    id = UrlParameter.Optional, page = UrlParameter.Optional }
);

为什么不?


找到答案了!当使用两个连续的可选 UrlParameters 时,MVC3 中存在一个错误,如 Phil Haack 所详述,此处具有两个连续可选 url 参数的路由回归

您需要首先声明只有一个可选参数的路由版本。所以

routes.MapRoute(
    "Default", // Route name
    "{action}/{id}", // URL with ONE parameter
    new { controller = "Home", action = "Index", 
    id = UrlParameter.Optional } // Parameter defaults
);

routes.MapRoute(
    "Default_with_page", // Route name
    "{action}/{id}/{page}", // URL with TWO parameters
    new { controller = "Home", action = "Index", 
    id = UrlParameter.Optional, page = UrlParameter.Optional } 
    // Parameter defaults
);

现在看来真的很明显。如果我真的包含了所有细节,我确信 Serghei 或其他人会看到这个问题,所以感谢所有的帮助!

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

ASP.NET MVC:出现空 ActionLink 的相关文章

随机推荐

  • “所有人”或“只有我”是 Windows 安装程序包的默认选项吗?

    微软有一篇文章 http support microsoft com kb 835460 其中解释了如何使用 Orca 数据库编辑器从使用 Visual Studio NET 创建的 Windows Installer 包中删除 Every
  • 为什么我需要为一个简单的 Flask 应用程序使用 Web 服务器、中间件等? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我一直在开发一个简单的 MVP 应用程序 现在是将其部署到我的生产服务器以进行更彻底的外部测试 它永远不会获得繁重的流量负载 这只是我需要一小群用户来测试的东西 现在我总是选择三层 N
  • 如何使用 Jackson 注释将嵌套值映射到属性?

    假设我正在调用一个 API 该 API 使用以下产品 JSON 进行响应 id 123 name The Best Product brand id 234 name ACME Products 我可以使用 Jackson 注释来映射产品
  • GitHub Actions:每个步骤都必须定义“uses”或“run”键

    我想设置 github 操作 调用 nuget 并缓存它 构建解决方案 运行单元测试 我设法让第二步和第三步正常工作 但现在将第一步结合起来是一个问题 name Cache Nuget uses actions cache v1 with
  • 如何使用 SpaCy 中的管道组件修改 spacy.tokens.doc.Doc 令牌

    我正在使用 SpaCy 预处理一些数据 但是 我对如何修改内容感到困惑spacy tokens doc Doc class 例如 这里 npc spacy load pt def pre process text doc gt str ne
  • NSPredicate 子查询语法

    我有一些不友好的字典数组 这些字典数组又包含数据数组 我试图根据传递谓词的任何内部数组来过滤外部数组 我似乎无法创建 NSPredicate 来完成这项工作 我从以下开始 NSPredicate lookupPredicate NSPred
  • SQL-列中的相似数据

    有什么办法可以在列中找到类似的结果 例子 我希望从没有 4 棵绿树的表数据中查询返回 因为没有与绿树相似的数据 但蓝色汽车与蓝色汽车相似 红色娃娃与红色娃娃相似 这个怎么做 我使用微软sql server管理工作室 你可以使用SOUNDEX
  • 如何在 2x2 网格上绘制多个 seaborn catplot?

    我尝试使用 FacetGrid 绘制 2x2 网格 每个子图都是相同数据的猫图 但只是具有不同的 抖动 值 它没有起作用 这是我现在使用的代码 sns catplot x Sex y SidestepDist jitter False da
  • 如何合并 Flex Datagrid 中的单元格?

    有没有办法在数据网格中合并单元格 垂直和 或水平 例如 至少有一种方法可以显示某些数据网格列属于一组 例如 我将采用三列 column1 column2 column3 所有这三个单元格都应分组到行距为 3 的 类别 单元格中 如果您愿意的
  • 在ggmap中对图例顺序进行排序

    如何对 ggmap 中的图例顺序进行排序 我有以下代码 mymap lt ggmap map geom point data mypoints aes x lon y lat colour month alpha 0 5 size 5 我希
  • 如何在特定坐标处将完整的 JTable 组件导出为 pdf

    在我的项目中 我必须以 pdf 格式打印 JTable 组件以及所有自定义项 如边框 颜色等 对于这个要求 我搜索了一下 找到了一个在 pdf 中打印 JTable 的代码 但打印后我发现表格的第一行和第一列的边框丢失了 而且我没有找到在某
  • Rail 4 中的批量分配受保护属性

    我收到错误消息警告 无法批量分配受保护的属性 有一种方法 强参数可以解决问题 但是失败了 我不想做attr accessible title description在每个模型中 我宁愿使用 Strong 参数 我在代码中使用 group p
  • Python 按标签和属性递归对 XML 元素进行排序

    我是 Python 新手 我正在尝试使用一些规则对 XML 进行排序 我的例子
  • 创建图像对象数组

    我正在尝试创建一系列图像对象 但很困难 每个对象将包含一个图像和图像的标题 当我将以下代码粘贴到 Firebug 中进行检查时 它工作正常 实施例1 var imageArray new Array imageArray 0 new Ima
  • 使用 REGEX 用可变长度零填充数字

    我遇到一种情况 客户端输入一个数字 我需要通过在其前面填充一定数量的零来验证该数字 我验证的字段的最大长度是 9 位数字 因此如果客户端输入 123 我需要在其前面填充 6 个零并进行验证 听起来很容易 对吧 好吧 这是最关键的 我对过程的
  • Codeigniter 连接模型中的两个表

    我想在我的模型中加入 2 个表 但它不起作用 这是我现在的模型 function list get id this gt load gt database query this gt db gt get where lists array
  • 如何使用 GET/POST 和 Token key 基于 Ajax 调用 ASP.NET Web API

    我知道如何将 Ajax 与 GET POST 数据一起使用 如下代码所示 但我不知道如何将其与 Token key 一起使用 已获得 Token key read1 click function support cors true ajax
  • C++ 未声明的标识符错误

    我得到一个未声明的标识符错误 我不知道为什么 我什至重写了完整的内容以确保我没有犯错 有人能告诉我为什么会出现这个错误吗 我的文件是 连接 hpp pragma once include LogicSimulator hpp include
  • 如何使用 thymeleaf 递归渲染菜单

    我想使用 ul li 列表呈现 HTML 菜单 我有这个类结构 public class MenuItem private String name private MenuItem parent private List
  • ASP.NET MVC:出现空 ActionLink

    我使用默认路由 因此不需要指定控制器 routes MapRoute Default action id new controller Home action Index id UrlParameter Optional 有了这个 我可以创