C# ASP.NET MVC在ActionLink中将ID传递给控制器

C# ASP.NET MVC在ActionLink中将ID传递给控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我似乎无法在我的控制器中检索html.ActionLink中发送的ID,以下是我尝试执行的操作 <li> <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li> public ActionResult Modify(string ID) {

我似乎无法在我的控制器中检索html.ActionLink中发送的ID,以下是我尝试执行的操作

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


    public ActionResult Modify(string ID)
    {

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

不要把@放在id前面

new { id = "1" }

当参数/路由不匹配时,框架会“转换”它的长度

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

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

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

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

在MVC 4中,您可以从一个视图链接到另一个控制器,并通过

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

ID将与前面的
@
符号一起使用,但我们必须在后面添加一个参数。即
null

看起来像:

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

在MVC5上是非常相似的

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

好的调用-问题是该函数的第一个重载将“HtmlAttributes”作为第四个参数。因此,添加“null”强制编译器使用内联对象作为路由参数。
@Html.ActionLink("LinkText", "ActionName", new { id = "id" })