无法在actionLink中传递参数ID

Ole*_*ich 1 asp.net-mvc-3

无法理解问题所在......我的溃败值是:

routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
Run Code Online (Sandbox Code Playgroud)

我尝试传递参数ID:

@Html.ActionLink(app.Name, "SingleAppEdit", "Admin", new { id = app.Id }, null)
Run Code Online (Sandbox Code Playgroud)

我在Controller"Admin"中的操作:

public ActionResult SingleAppEdit(string appId)
        {
            var positions = new List<SelectListItem>
                                       {
                                           new SelectListItem() {Text = "Top", Value = "Top"},
                                           new SelectListItem() {Text = "Bottom", Value = "Bottom"},
                                           new SelectListItem() {Text = "None", Value = "None"}
                                       };
            ViewData["PositionsList"] = new SelectList(positions, "Value", "Text");


            var app = Apps.FirstOrDefault(a => a.Id == Convert.ToInt32(appId));
            return View(app);
        }
Run Code Online (Sandbox Code Playgroud)

我在控制器中得到null.有人可以帮忙吗?

Shy*_*yju 6

您的方法参数名称是appId.但是你试图传递一个名为的参数id.

解决方案:更改参数名称以与方法定义匹配.

@Html.ActionLink(app.Name, "SingleAppEdit", "Admin",
                                new { appId= app.Id }, null)
Run Code Online (Sandbox Code Playgroud)