使用字符串将子域添加到 <a></a>
Add subdomain to <a></a> using a string
我遇到了以下问题。我们的课程注册系统有 5 个学校的页面。每所学校都有自己的(子)域,如下所示:
school.project.domain.nl
通用着陆页有 link 到不同学校的各种课程。这些 link 应该包括上面 link 中的学校部分。
用户前往
project.domain.nl
因此 url 此时不包含子域学校。
我需要将子域作为生成的 url 的一部分。下面是有问题的代码。学校在字符串变量 course.school 中可用,那么如何将子域学校添加到 link project.domain.nl?
<a href="@Url.Action("Details", "Courses", new { course.Id })">@course.Title</a>
由于 Url.Action()
默认情况下* 会以 /controller/action/whatever
的形式生成 link,因此您可以在其前面加上您选择的域作为前缀。例如:
<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>
* 您可以让它包含域,但这里不会发生这种情况。
我遇到了以下问题。我们的课程注册系统有 5 个学校的页面。每所学校都有自己的(子)域,如下所示:
school.project.domain.nl
通用着陆页有 link 到不同学校的各种课程。这些 link 应该包括上面 link 中的学校部分。
用户前往
project.domain.nl
因此 url 此时不包含子域学校。
我需要将子域作为生成的 url 的一部分。下面是有问题的代码。学校在字符串变量 course.school 中可用,那么如何将子域学校添加到 link project.domain.nl?
<a href="@Url.Action("Details", "Courses", new { course.Id })">@course.Title</a>
由于 Url.Action()
默认情况下* 会以 /controller/action/whatever
的形式生成 link,因此您可以在其前面加上您选择的域作为前缀。例如:
<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>
* 您可以让它包含域,但这里不会发生这种情况。