此视图假设显示一个超链接列表,每个超链接都指向一个外部URL。目标是让用户单击其中一个链接并让浏览器打开包含所选URL的新选项卡。 目前我有以下标记:
@Html.ActionLink("SomeSite", "http://subdomain.mydomain.com/SomeSite")
此标记产生:
http://localhost:58980/AccessInstance/http%3a/subdomain.mydomain.com/SomeSite
而不是:
http://subdomain.mydomain.com/SomeSite
我可以在标记中更改哪些内容以使其按预期工作?
答案 0 :(得分:32)
您不需要使用@Html.ActionLink
。只需使用普通的A标签:
<a href="http://subdomain.mydomain.com/SomeSite">SomeSite</a>
Html.ActionLink
专门用于生成MVC控制器中定义的操作的链接,在同一个应用程序中。由于您要链接到绝对网址,因此您不需要Html.ActionLink
提供的任何功能。
答案 1 :(得分:5)
两种方式:
1。使用完整链接更新数据库列:
例如SQL
:
update ProductTable set LinkColumn='http://www.example.com/Product/Mobiles' where ID=123
在asp mvc视图中
<a href="@model.ProductLink">View</a>
2. :对http
部分和模型列表进行硬编码
<a href="http://@model.ProductLink">View</a>
希望帮助某人。
答案 2 :(得分:0)
您需要考虑RouteConfiguration。
routes.MapRoute( 名称:“默认”, url:“{controller} / {action}”
因为您要将操作链接指定为要重定向的整个链接。 我建议您使用@rossipedia答案,因为您可以制作棘手的事情,例如在链接中放置一个范围
答案 3 :(得分:0)
虽然ViewBag过度使用并且不是大多数时候的最佳选择,但这是我在继承其他人的mvc应用程序时快速修复我需要重定向到的网址时所做的事情。特定的动态更改查询字符串参数
<a target="_parent" href="http://localhost:56332/services/@ViewBag.factory">View Service</a>
答案 4 :(得分:0)
此处显示可在索引页面中单击的链接
<td>
@Html.ActionLink(item.FileName, "../Uploads/Catalogue/"+item.FileName)
</td>
答案 5 :(得分:-1)
如果您想在左上角的导航栏中添加指向外部站点的链接,该站点上会显示“注册”“登录”,您可以这样做: 在MVC5中,转到_LoginPartial.chtml并添加:
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })
<li> <a href="http://link/here">Redirect</a> »</li>//this will add your link
</ul>