1

我有一个 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

所以似乎我做错了什么,因为它试图调用控制器上的方法。我对这一切还很陌生,所以我不完全确定如何解决这个问题。

4

1 回答 1

4

在这种情况下,问题是您Url没有以协议 (IE http://) 开头 - 因此浏览器将其解释为文档的相对 url。您需要向您的应用程序添加一些逻辑,以确保外部 url 以协议开头,如下所示:

var url = "www.microsoft.com";
if (!string.IsNullOrWhiteSpace(url) && !url.StartsWith("http://")) {
    url = "http://" + url;
}
于 2013-04-20T18:29:25.840 回答