繁体   English   中英

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

[英]ASP.NET MVC passing an ID in an ActionLink to the controller

我似乎无法检索我在控制器中的 html.ActionLink 中发送的 ID,这就是我想要做的

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


    public ActionResult Modify(string ID)
    {

        ViewData["Title"] =ID;
        return View();
    }

这就是我推荐的教程,但它不起作用,它还将 ?Length=5 放在 URL 的末尾!

这是我正在使用的路线,它是默认的

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

看起来您没有使用正确的 ActionLink 重载。 尝试这个:-

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

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

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

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

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

不要把@放在id之前

new { id = "1" }

当参数/路由不匹配时,框架将其“翻译”为 ?Lenght

在 MVC 5 上非常相似

@Html.ActionLink("LinkText", "ActionName", new { id = "id" })

ID 也可以在前面加上@符号,但我们必须在后面添加一个参数。 那是null

看起来像:

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM