C# 操作将转到服务器,但不是根URL

C# 操作将转到服务器,但不是根URL,c#,asp.net-mvc,url,C#,Asp.net Mvc,Url,MVC新手,如果我的问题不清楚,请原谅 我的视图-具有URL(在主控制器中生成) 当我将其部署到dev服务器时,而不是将URL显示为 https://abc.somecompany.org/ContName/ 或 正在将其更改为https://abc-server-8088/ContName,这显然不适用于组织外部 为什么根URL从abc.somecompany.org/更改为abc-server-8088?开发和测试中都存在类似的问题。这将被更改为其他内容 不想将其更改为URL内容,因为我

MVC新手,如果我的问题不清楚,请原谅

我的视图-具有URL(在主控制器中生成)

当我将其部署到dev服务器时,而不是将URL显示为

https://abc.somecompany.org/ContName/ 

正在将其更改为
https://abc-server-8088/ContName
,这显然不适用于组织外部

为什么根URL从
abc.somecompany.org/
更改为
abc-server-8088
?开发和测试中都存在类似的问题。这将被更改为其他内容

不想将其更改为URL内容,因为我有操作和控制器

@Url.Action("Index", "ContName" ,
                new { id = viewModel.Id }, Request.Url.Scheme);
viewModel.URLLINK = Url.Action(Etion.Index, Entroller.ContName,
                new { id = viewModel.Id }, Request.Url.Scheme);

要在电子邮件中显示相同的根URL(~),请尝试以下简单解决方案:

@{
    var myLink = $"{Request.Url.Scheme}://{Request.Url.Host}{@Url.Action("actionName", "controllerName", new { id = @Model.id })}";
    <a href="@myLink">Link</a>
}
生成:

    <a href="/somecontroller/someaction/123?foo=5">link text</a>
但是,
Url.action
的优点在于,您可以将其与锚定标记结合起来,动态创建链接内容。例如:

<a href="@Url.Action("actionName", "controllerName", new { id = @Model.id })">
    <img src="@Model.src" />
</a>


调用此行时会发生什么
@Url.Action(“Index”,“ContName”,new{id=viewModel.id},Request.Url.Scheme)
不带
请求.Url.Scheme
。只需使用
@Url.Action(“Index”,“ContName”,new{id=viewModel.id})。我从未见过
Request.Url.Scheme
Url.Action()
的大多数示例中被传递,它很可能是导致问题的原因之一。您能显示route.config内容吗
    <a href="/somecontroller/someaction/123?foo=5">link text</a>
     /somecontroller/someaction/123
<a href="@Url.Action("actionName", "controllerName", new { id = @Model.id })">
    <img src="@Model.src" />
</a>