gpt4 book ai didi

c# - ASP.NET Core 将子域映射到区域

转载 作者:太空狗 更新时间:2023-10-29 22:57:10 28 4
gpt4 key购买 nike

我正在尝试将子域映射到区域,到目前为止,我找到的所有答案都是针对以前版本的 .NET 而不是 .NET 核心。我找到的最好和最相关的答案来自 This page .但是我在实现它时遇到了问题,因为它似乎是 .NET 核心版本的演练,我得到了 'MvcRouteHandler' does not contain a constructor that takes 0 arguments 错误。

这是我从中得到错误的代码:

public class AreaRouter : MvcRouteHandler, IRouter //the error happens in this line, visual studio underlines the AreaRoute word
{
public new async Task RouteAsync(RouteContext context)
{
string url = context.HttpContext.Request.Headers["HOST"];

string firstDomain = url.Split('.')[0];
string subDomain = char.ToUpper(firstDomain[0]) + firstDomain.Substring(1);

string area = subDomain;

context.RouteData.Values.Add("area", subDomain);

await base.RouteAsync(context);
}
}

所以无论如何,我正在寻找另一种方法来将子域映射到区域或找到修复此错误的方法。

最佳答案

编辑:提供完整教程 here .成功创建了文件的工作版本。
1.路由器代码可用here .在文件顶部的 _allowedSubdomains 数组中指定您自己的子域。
2.添加路由器后,在Startup.cs中修改你的代码:

app.UseMvc(routes =>
{
routes.DefaultHandler = areaRouter;

areaRouter 应该按照@mepsi 的描述传递。
3. 最后,按照描述允许使用 sudomains here .
现在一切都应该正常工作了。完整代码可在 Github 上获得.稍后我将编写包含所有解释的完整教程。

关于c# - ASP.NET Core 将子域映射到区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287716/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com