Asp.net mvc 从单击的url获取id

Asp.net mvc 从单击的url获取id,asp.net-mvc,Asp.net Mvc,对于我来说,有必要在一个页面上选择论坛主题的用户,从数据库中选择主题的内容加载到页面上。我将描述我是如何解决这项任务的。此代码显示论坛线程: <a href='Home/ThreadView' id='1'>About all</a> <a href='Home/ThreadView' id='2'>Cars</a> 当我单击任何链接时,会发生错误: 参数字典包含类型为“System.Int32”的参数“id”的值为NUL

对于我来说,有必要在一个页面上选择论坛主题的用户,从数据库中选择主题的内容加载到页面上。我将描述我是如何解决这项任务的。此代码显示论坛线程:

      <a href='Home/ThreadView' id='1'>About all</a>
      <a href='Home/ThreadView' id='2'>Cars</a>
当我单击任何链接时,会发生错误:

参数字典包含类型为“System.Int32”的参数“id”的值为NULL的记录


如何解决此问题?

链接中的ID属性是HTML元素的ID。。。因此,如果您想使用javascript做一些事情,该id可能会很有用

对于当前代码,id永远不会发送到控制器操作,这就是您看到错误的原因。您需要将ID与控制器/操作一起放入
href
属性中

您有两个选项可将id传递给控制器操作:

  • 如果您有现成的布线规则,则可以使用:

  • 您可以通过以下方式通过查询字符串发送:

编辑:

  • 要使路由正常工作,不需要元素id
您可以使用以下剃须刀助手之一,而不是手动执行此操作:

@Html.ActionLink("About all", "Home", "ThreadView", new { id = 1})
如果需要向链接元素添加一些属性,除了路由参数外:

@Html.ActionLink("About all", "Home", "ThreadView", new { id = 1}, new { @class = "redLink", id="aboutall"})

id可以作为
传递给我如何共享代码的属性id和元素id html的概念id以避免进一步混淆?John,元素id不是必需的。。。只需将其用作通过id访问该元素的一种方式。在您的情况下,这不是必需的。在本例中,您是手动编写链接,但您可以按照我编辑的答案执行。
@Html.ActionLink("About all", "Home", "ThreadView", new { id = 1}, new { @class = "redLink", id="aboutall"})