首页 文章

从点击的网址获取ID

提问于
浏览
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的记录

如何解决这个问题呢 ?

1 回答

  • 2

    您链接中的ID属性是HTML元素的ID ...因此,如果您想使用javascript执行某项操作,则该ID可能很有用 .

    使用当前代码,id永远不会发送到控制器操作,这就是您看到错误的原因 . 您需要将ID与 href 属性一起放入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>

    EDIT:

    • 为了使路由工作,不需要元素id .

    您可以使用其中一个Razor Helpers而不是手动执行此操作:

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

    如果需要向link元素添加一些属性,除了路由参数:

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

相关问题