0

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

      <a href='Home/ThreadView' id='1'>About all</a>
      <a href='Home/ThreadView' id='2'>Cars</a>

ThreadView 动作有代码:

    [HttpGet]
    public ViewResult ThreadView(int id)
    {
        ViewData[ThreadViewSelector] = Thread.GetThreadView(id);//Thread is a model.
        return View();
    }

当我单击任何链接时,会发生错误:

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

如何解决这个问题呢 ?

4

1 回答 1

2

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

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

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

  • 如果您有开箱即用的路由规则,您可以使用:

    <a href='Home/ThreadView/1' id='1'>About all</a>

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

    <a href='Home/ThreadView/?id=1' id='1'>About all</a>

编辑:

  • 为了使路由正常工作,不需要元素 id。

您可以使用 Razor Helpers 之一,而不是手动执行此操作:

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

如果你需要为链接元素添加一些属性,除了路由参数:

@Html.ActionLink("About all", "Home", "ThreadView", new { id = 1}, new { @class = "redLink", id="aboutall"})
于 2013-08-25T12:52:43.870 回答