получение ошибки 404 при попытке отправить сообщение в контроллер

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

рассмотрев другие подобные вопросы, я попытался переформатировать ссылку действия, а также попытался использовать @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.


person CodeChunky    schedule 12.10.2019    source источник


Ответы (1)


Пожалуйста, проверьте это, вам нужно изменить некоторые небольшие фрагменты кода.

На странице 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 }
            );
        }            
    }

Изображение

person jishan siddique    schedule 12.10.2019