генерировать URL с помощью помощника Url.Action из контроллера маршрутизации атрибутов с префиксом - PullRequest
0 голосов
/ 06 октября 2018

Я определил маршрут карты следующим образом:

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=User}/{action=Student}/{id?}");                   
        });

, и у меня есть действие API с маршрутизацией атрибутов, например:

[Route("api/User")]
public class UserApiController : Controller
{
    ....
    [HttpGet]
    [Route("Teacher")]
    public async Task<IEnumerable<UserApiVM>> GetTeachers()
    {
        ....
    }
 }

К которому я могу получить доступ к просмотру прямойurl like "http://api/User/Teacher".

Теперь я хочу сгенерировать этот URL-адрес с помощью помощника @ URL.Action или любого другого помощника, но я не могу понять, как это сделать. Я пытался использовать

@Url.Action("Teacher","UserApi")

но он не смог найти контроллер.

Кстати, контроллер находится в папке «Controllers», а контроллеры API - в папке «API» внутри папки «Controllers».

Спасибо!

1 Ответ

0 голосов
/ 08 октября 2018

Для генерации api/User/Teacher необходимо указать GetTeachers в качестве имени контроллера вместо Teacher.

@Url.Action("GetTeachers", "UserApi")

Если вы хотите сгенерировать URL, указав Teacher, вы можете попытаться установить имя маршрута, как показано ниже:

    [HttpGet]
    [Route("Teacher",Name = "Teacher")]
    public async Task<IEnumerable<string>> GetTeachers()
    {
        return null;
    }

И сгенерировать URL с помощью:

@Url.RouteUrl("Teacher")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...