Asp.net mvc 如何在MVC Razor中正确编码指向外部URL的链接
该视图假设显示一个超链接列表,每个超链接指向一个外部URL。目标是让用户单击其中一个链接,并让其浏览器打开带有选定URL的新选项卡。 目前我有以下标记:Asp.net mvc 如何在MVC Razor中正确编码指向外部URL的链接,asp.net-mvc,razor,html-helper,Asp.net Mvc,Razor,Html Helper,该视图假设显示一个超链接列表,每个超链接指向一个外部URL。目标是让用户单击其中一个链接,并让其浏览器打开带有选定URL的新选项卡。 目前我有以下标记: @Html.ActionLink("SomeSite", "http://subdomain.mydomain.com/SomeSite") 此标记生成: http://localhost:58980/AccessInstance/http%3a/subdomain.mydomain.com/SomeSite 而不是: http://sub
@Html.ActionLink("SomeSite", "http://subdomain.mydomain.com/SomeSite")
此标记生成:
http://localhost:58980/AccessInstance/http%3a/subdomain.mydomain.com/SomeSite
而不是:
http://subdomain.mydomain.com/SomeSite
我可以在我的标记中更改什么以使其按预期工作?您不需要为此使用
@Html.ActionLink
。只需使用简单的a标记:
<a href="http://subdomain.mydomain.com/SomeSite">SomeSite</a>
Html.ActionLink
专门用于在同一应用程序中生成指向MVC控制器中定义的操作的链接。由于您正在链接到一个绝对URL,因此不需要Html.ActionLink
提供的任何功能。您需要考虑您的路由配置
routes.MapRoute(
名称:“默认”,
url:“{controller}/{action}”
因为您将操作链接指定为要重定向的整个链接。
我建议您使用@rossipedia答案,因为您可以通过两种方式进行一些棘手的操作,例如在链接中添加一个跨距:
1.使用完整链接更新数据库列:
例如SQLSQL
:
update ProductTable set ProductLink='http://www.example.com/Product/Mobiles' where ID=123
在asp mvc视图中
<a href="@model.ProductLink">View</a>
希望对某些人有帮助。虽然ViewBag被过度使用,而且在大多数情况下都不是最佳选择,但这是我在继承其他人的mvc应用程序时所做的一件事,即使用特定的动态更改的querystring参数对需要重定向到的URL进行快速修复
<a target="_parent" href="http://localhost:56332/services/@ViewBag.factory">View Service</a>
此处显示可在索引页中单击的链接
<td>
@Html.ActionLink(item.FileName, "../Uploads/Catalogue/"+item.FileName)
</td>
@Html.ActionLink(item.FileName,“../Uploads/catalog/”+item.FileName)
Hello我从数据库字段调用url,需要链接。我在视图中调用数据@Html.DisplayFor(model=>model.Announcment\u link)
如何使其成为链接另外,如果您从实体属性生成href,MVC将生成一个操作URL,除非该地址指定了http协议,即:vs www.stackoverflow.com。因此,如果您想要外部URL,请确保您在数据中获得了该http。当我使用
时,它会删除:fromhttp@touinta,有些浏览器没有显示协议检查文章,我可以知道你是如何在数据库列中存储示例链接的吗?@storm在数据库中的链接字段是varchar。其中一些是与一起的,另一些是与www一起的。你为什么不使用http://
来存储呢?那么就很容易了,请检查我的答案以了解你的问题并在那里发表评论。
<td>
@Html.ActionLink(item.FileName, "../Uploads/Catalogue/"+item.FileName)
</td>