ошибка 404 при попытке отправить на контроллер - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь вызвать метод контроллера, передавая 2 параметра, но действие контроллера никогда не срабатывает, и возвращается ошибка 404.

, посмотрев на другие подобные вопросы, я попытался переформатировать actionlink, а также попыталсяиспользуя @ html.action, удостоверился, что это HttpGet, а не HttpPost, и, очевидно, сделал метод действия действительно в контроллере.

Результат действия:

     @Html.ActionLink(
                   linkText: item.FileName,
                   actionName: "GetStatement",
                   controllerName: "Statements",
                   routeValues: new { id = item.Id, entityCode = 
    item.EntityCode },
                   htmlAttributes: null)

Метод контроллера

public class StatementsController : Controller
    {
        [HttpGet]
        public ActionResult GetStatement(int id, int entityCode)
        {
           //go to repository and get statement
        }
    }

Я также не уверен, что соответствующий URL отформатирован правильно: Statments / GetStatement / 1234? EntityCode = 111

1 Ответ

0 голосов
/ 12 октября 2019

Пожалуйста, отметьте это, вам нужно изменить несколько небольших кусочков кода.

На странице cshtml

 @Html.ActionLink(
                   linkText: item.FileName,
                   actionName: "GetStatement",
                   controllerName: "Statements",
                   routeValues: new { itemid = item.Id, entityCode = 
    item.EntityCode },
                   htmlAttributes: null)

Код контроллера

public class StatementsController : Controller
    {
        [HttpGet]
        public ActionResult GetStatement(int itemid, int entityCode)
        {
           //go to repository and get statement
        }
    }

Примечание: если вы передадите «Id» в действие контроллера , то автоматически выполните преобразование маршрута в следующем примере

public ActionResult HandleException(int id)
        {
            // id mentioned in **RouteConfig** file that's way URL automatic mapped
        }

См. Файл RouteConfig

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {                
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }            
    }

image

...