我有一个MVC 4视图。其中一个属性是'Url'。我在此视图的字段中显示URL的值,当用户点击它时,我想执行该URL。我有这段代码:
<div class="display-label">
@Html.DisplayName("Url")
</div>
<div class="display-field">
<a href="@Model.Url">@Model.Url</a>
</div>
问题是当用户点击此URL(我使用www.microsoft.com作为测试)时,我收到以下错误:
Requested URL
http://localhost:52070/HousingBuyerSearch/Details/www.microsoft.com
所以看起来我做错了,因为它试图在控制器上调用一个方法。我仍然相当新,所以我不完全确定如何解决这个问题。
答案 0 :(得分:4)
在这种情况下的问题是您的Url
不以协议(IE http://
)开头 - 因此浏览器会将此解释为您文档的相对网址。您需要为应用添加一些逻辑,以确保外部URL以协议开头,如下所示:
var url = "www.microsoft.com";
if (!string.IsNullOrWhiteSpace(url) && !url.StartsWith("http://")) {
url = "http://" + url;
}