Области ASP.NET MVC возвращают пустое представление - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть одно приложение ASP.NET MVC, в котором также есть области.

Для коротких URL я настроил маршруты для всех actionmethods с короткими URL в RouteConfig областей, как показано ниже.

//admin dashboard having short url admin/dashboard
context.MapRoute(
            "admin_dashboard",
            "admin/dashboard",
            new { area = "admin", controller = "admin", action = "dashboard" }
        );

//student list having short url admin/studentlist
        context.MapRoute(
            "student_list",
            "admin/studentlist",
            new { area = "admin", controller = "students", action = "List" }
        );

//new student having short url admin/student/new
        context.MapRoute(
            "student_new",
            "admin/student/new",
            new { area = "admin", controller = "students", action = "RegisterStudent" }
        );

//edit student having short url admin/student/id
        context.MapRoute(
            "student_edit",
            "admin/student/{id}",
            new { area = "admin", controller = "students", action = "RegisterStudent" }
        );

Как видите, я определил короткие URL для всех методов действия, и он также работает нормально, за исключением двух последних, которые вызывают метод, но возвращают пустое представление.

        [Route("admin/student/{id}")]
        [Route("admin/student/new")]
        public ActionResult RegisterStudent(string Id)
        {
         ....mycode
         return View("RegisterStudent", mymodel);
        }

Проблема в том, что он вызывает метод без каких-либо ошибок, но не возвращает представление. Возвращает пустое представление. Почему это случилось, я сделал какую-то ошибку?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Если ваш запрос направлен на ваш метод действия, то нет проблем с маршрутизацией. Если ваше действие возвращает пустое значение View, тогда должна быть проблема с самим View.

0 голосов
/ 01 ноября 2018

Id - это целое число по умолчанию в маршруте. вы рассматриваете это как строку.

...