I have three Action Result methods with same name and all of these are [httpPost] types. i use attribute routing to bound these methods when i add attribute routing non of these method get invoked but when i remove routing attribute from any one of these method, then only that method get invoked. please guide me where i am doing wrong. Thanks in advance.
First method
[HttpPost, ValidateAntiForgeryToken]
[Route("Home/PrintFileMovement/{option}/{SearchBox}")]
public ActionResult PrintFileMovement(string option, string SearchBox)
{
FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
List<File_Movement> fileMovementModel;
if (option == "DiaryNo")
{
//FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
fileMovementModel = fvm.SearchFileByDiaryNo(SearchBox);
return View(fileMovementModel);
}
else if (option == "Subject")
{
// FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
fileMovementModel = fvm.SearchFileBySubject(SearchBox);
return View(fileMovementModel);
}
fileMovementModel = fvm.GetFileMovement();
return View(fileMovementModel);
}
Second method which is working fine without routing attributes
[HttpPost, ValidateAntiForgeryToken]
[Route("Home/PrintFileMovement/{option}/{Date:datetime}")]
public ActionResult PrintFileMovement(string option, DateTime? Date)
{
FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
List<File_Movement> fileMovementModel;
if (option == "ReceiveDate")
{
fileMovementModel = fvm.SearchFileByReceiveDate(Date.Value);
return View(fileMovementModel);
}
fileMovementModel = fvm.GetFileMovement();
return View(fileMovementModel);
}
And here is 3rd method
[HttpPost, ValidateAntiForgeryToken]
[Route("Home/PrintFileMovement/{MyDate:datetime}")]
public ActionResult PrintFileMovement(DateTime? MyDate)
{
FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
List<File_Movement> fileMovementModel = fvm.SearchFileByReceiveDate(MyDate.Value);
return View(fileMovementModel);
}
RouteConfig
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
);
}
RouteConfig.cs) and controller attributes[RoutePrefix("Home")]overpublic class HomeController : Controllerline?