当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC将ActionLink中的ID传递给控制器

如何解决《ASP.NETMVC将ActionLink中的ID传递给控制器》经验,为你挑选了3个好方法。

我无法在我的控制器中查看我在html.ActionLink中发送的ID,这是我正在尝试做的事情

  • <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%>
  • public ActionResult Modify(string ID) { ViewData["Title"] =ID; return View(); }

    这就是我所遵循的教程,但它不起作用,它也在URL的末尾放置了长度= 5!

    提前致谢!

    编辑:这是我正在使用的路线,这是默认路线

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

    看来有人对以下两条建议进行了投票,但没有发布他们的解决方案!



    1> AnthonyWJone..:

    看起来你没有使用正确的ActionLink重载.试试这个:-

    <%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>
    

    假设您的视图位于/ Views/Villa文件夹下.如果没有,那么我怀疑你需要: -

    <%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>
    


    好的调用 - 问题是该函数的第一次重载将"HtmlAttributes"作为第四个参数.因此,添加",null"会强制编译器将您的内联对象用作路由参数.

    2> 小智..:

    在MVC 4中,您可以从一个视图链接到另一个通过Id或主键的控制器

    @Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 
    



    3> Davide Vosti..:

    不要把id放在@之前

    new { id = "1" }
    

    当参数/路线不匹配时,框架会"翻译"它

    推荐阅读
    云聪京初瑞子_617
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有