1

MVC 4 ビューがあります。プロパティの 1 つに「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 に答える