Добавить поддомен к <a></a> используя строку - PullRequest
0 голосов
/ 02 мая 2018

У меня следующая проблема. В нашей системе регистрации курсов есть страницы для 5 школ. У каждой школы есть свой собственный (суб) домен, подобный этому:

school.project.domain.nl

На главной целевой странице есть ссылки на все виды курсов из разных школ. Эти ссылки должны включать школьную часть по ссылке выше.

Пользователи переходят на

project.domain.nl

Таким образом, на этом этапе в URL не указана школа поддоменов.

Мне нужно включить поддомен как часть генерируемого URL. Ниже приведен код, который имеет проблему. Школа доступна в строковой переменной course.school, так как я могу добавить субдомен школы к ссылке project.domain.nl?

<a href="@Url.Action("Details", "Courses", new { course.Id })">@course.Title</a>

1 Ответ

0 голосов
/ 02 мая 2018

Поскольку Url.Action() по умолчанию * создаст ссылку в виде /controller/action/whatever, так что вы можете просто поставить перед ней префикс по вашему выбору. Например:

<a href="@string.Format(
    "http://school.project.domain.nl", 
    Url.Action(" Details", "Courses" , new { Model.Content.Id }))">@Model.Content</a>

Конечно, вы, вероятно, хотите поместить это в вспомогательный метод. Например:

public static class UrlHelperExtensions
{
    public static string SchoolAction(this UrlHelper helper, string school,
        string actionName, string controllerName, object routeValues)
    {
        var url = $"http://{school}.project.domain.nl";
        var action = helper.Action(actionName, controllerName, routeValues);

        return $"{url}{action}";

    }
}

И теперь вы можете сделать это:

<a href="@Url.SchoolAction("schoolname", "Details", "Courses",
    new { Model.Content.Id }))">@Model.Content</a>

* Вы можете включить домен, но здесь этого не происходит.

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