我的MVC 4应用程序中有一个View,用户输入名字和姓氏并点击搜索按钮。一旦他们这样做,我的控制器中的一个动作被称为
[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>
}
理想情况下,我希望用户点击相应管理器旁边的“选择管理器”链接,但是,每当我测试它时,没有任何反应,我的控制器中的ChangeLineManager操作不会被调用。
有人对如何解决此问题有任何建议吗?
感谢您的时间。
答案 0 :(得分:3)
动作链接将呈现给标记。当用户单击此标记时,GET请求将转到服务器,但在控制器中仅转发POST ChangeLineManager。 你需要添加这样的东西
[HttpGet]
public ActionResult ChangeLineManager(int? id)
{
//some logic
}