在将参数传递给控制器操作时遇到问题,我已完成以下操作
Url.Action("SchoolDetails","School",new{id=item.SchoolId})
我的控制器操作如下
public ActionResult SchoolDetails(string schoolId,_ASI_School schoolDetail) { schoolDetail = SchoolRepository.GetSchoolById(schoolId); return View(schoolDetail); }
我不知道为什么上面的学校会变得无效......
答案 0 :(得分:3)
您的参数在id
方法调用中名为schoolId
,而不是Url.Action
。 html中的参数名称,控制器的操作和路径定义中的参数名称必须匹配。此外,您必须在路线中使用此参数。例如,如果您使用默认路由a.k.a
Controller/Action/{id}
,将操作中的参数重命名为id。如果在您的路线中找不到参数,则会将其移至查询字符串参数,您可以在Request.QueryString["id"]
的操作中访问该参数。
答案 1 :(得分:2)
您必须在Global.asax
中将默认路线定义为:
routes.MapRoute(
"Default",
"Home",
new { Controller = "Home", action = "Index", schoolId = UrlParameter.Optional }
并将您的Action
更改为Url.Action("SchoolDetails","School",new{schoolId =item.SchoolId})
。