[Route("admins")]
public ActionResult AdminManagement()
{
EmployeeBuslayer lstEmp = new EmployeeBuslayer();
AdminManamegemtModel comModel = new AdminManamegemtModel();
comModel = lstEmp.GetAdminsWithRole;
return View(comModel);
}
#region AdminMaster
[HttpPost]
[ActionName("AdminManagement")]
public ActionResult AdminManagementPost()
{
string SearchText = Request.Form["Search"].ToString().ToLower();
EmployeeBuslayer lstEmp = new EmployeeBuslayer();
List<AdminMaster> dataEmployee = null;
AdminManamegemtModel comModel = new AdminManamegemtModel();
AdminManamegemtModel comModelfromDB = lstEmp.GetAdminsWithRole;
dataEmployee = comModelfromDB.AdminMasterModel.Where(src => src.UserName.ToLower().Contains(SearchText) || src.EmailID.ToLower().Contains(SearchText)).ToList();
comModel.AdminMasterModel = dataEmployee;
comModel.AdminRoleMasterModel = comModelfromDB.AdminRoleMasterModel;
return View("AdminManagement", comModel);
}
以上两种方法适用于同一视图。我有搜索按钮。点击搜索时,它会给我以下错误。
当前的行动请求&#39; AdminManagement&#39;在控制器类型上 &#39; AdminController&#39;以下操作方法之间不明确: 类型上的System.Web.Mvc.ActionResult AdminManagementPost() MVCAdminDemo.Controllers.AdminController System.Web.Mvc.ActionResult 类型为MVCAdminDemo.Controllers.AdminController的AdminManagement()。一世 可以通过从AdminManagementPost()中删除ActionName来解决此错误 ,但问题是URL更改,我不希望这样。 url应该是
http://localhost:52499/admin/admins
AdminManagement()是加载默认值
的Get方法加载答案 0 :(得分:0)
我认为动作名称在这里并不重要。由于您没有为第一个操作方法指定任何http动词,因此将其视为post。因此,每当您尝试呼叫此路线时,由于在同一路线上有两个带动词的动作方法,因此不明确。使用[HttpGet]装饰第一个动作方法,因为它看起来像是一个get动作。示例代码如下:
[Route("api/datasync/get")]
[HttpGet]
public IHttpActionResult GetOne()
{
return Ok(1);
}
[Route("api/datasync/get")]
[HttpPost]
public IHttpActionResult GetOnes()
{
return Ok(1);
}