Asp.net mvc 4 MVC 4 Actionlink参数未传递给控制器操作

Asp.net mvc 4 MVC 4 Actionlink参数未传递给控制器操作,asp.net-mvc-4,parameters,actionlink,Asp.net Mvc 4,Parameters,Actionlink,我在MVC4应用程序中有一个视图,用户在其中键入名字和姓氏并点击搜索按钮。一旦他们这样做,我的控制器中的一个动作被调用 [HttpPost] public ActionResult ChangeLineManager(RegisterLineManagerModel model, int? id) { if (ModelState.IsValid) { if (id == null) { // Search for person

我在MVC4应用程序中有一个视图,用户在其中键入名字和姓氏并点击搜索按钮。一旦他们这样做,我的控制器中的一个动作被调用

[HttpPost]
public ActionResult ChangeLineManager(RegisterLineManagerModel model, int? id)
{

    if (ModelState.IsValid)
    { 
       if (id == null)
       {
         // Search for person using model.SearchFName and model.SearchLName
       }
       else
       {
         // User has selected manager from returned list of people
       }

    }
}
一旦用户执行搜索,如果返回数据,我将列出数据

@foreach (var user in Model.LineManagers)
{
  <tr>
   <td>@Html.ActionLink(linkText: "Select Manager", 
       actionName: "ChangeLineManager", 
       controllerName: "Portfolio", 
       routeValues: new { id = (int?)user.ApplicantID }, htmlAttributes: null)
   </td>
  </tr>
}
@foreach(Model.LineManagers中的var用户)
{
@ActionLink(linkText:“选择管理器”,
actionName:“ChangeLineManager”,
控制人姓名:“投资组合”,
RouteValue:new{id=(int?)user.applicationId},htmlAttributes:null)
}
理想情况下,我希望用户单击相应管理器旁边的“选择管理器”链接,但是,每当我测试此操作时,都不会发生任何情况,控制器中的ChangeLineManager操作不会被调用

有人对如何解决这个问题有什么建议吗


感谢您的时间。

操作链接将呈现到一个标记。当用户单击此标记时,获取请求转到服务器,但在控制器中仅显示POST ChangeLineManager。 你需要加上这样的东西

[HttpGet]
public ActionResult ChangeLineManager(int? id)
{
    //some logic

}

为什么在操作中使用http postmethod@Rex因为当用户第一次执行搜索时需要它,即键入first和last name,然后单击submit按钮。@tgr您的操作方法正在查找两个变量RegisterLineManagerModel model,int?id、model和a id。