2013-04-20 2 views
1

MVC 4보기가 있습니다. 속성 중 하나는 'URL'입니다. 이보기의 필드에 URL 값을 표시하고 있는데 사용자가 클릭하면 URL을 실행하고 싶습니다.MVC 4 -보기에서 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 

를이 코드를 그래서 그것은 컨트롤러에 메서드를 호출하려고 시도하기 때문에 내가 잘못하고있는 것처럼 보입니다. 나는 아직도이 모든 것들에 대해 상당히 새로운 것이므로 이것을 고치는 방법을 완전히 모르겠습니다.

+1

어떻게 Model.Url을 채우고 있습니까? – viperguynaz

+1

무슨 뜻인지 모르겠다. 내가 데이터베이스 테이블에서 값을 읽은 후에 컨트롤러에 값을 채 웁니다. 값은 'www.microsoft.com'으로 저장됩니다. – Hosea146

답변

4

이 경우 문제는 Url이 프로토콜 (IE http://)로 시작하지 않으므로 브라우저가이를 상대 문서로 해석하고 있습니다. 외부 URL이 다음과 같은 프로토콜로 시작하도록하려면 앱에 로직을 추가해야합니다.

var url = "www.microsoft.com"; 
if (!string.IsNullOrWhiteSpace(url) && !url.StartsWith("http://")) { 
    url = "http://" + url; 
} 
관련 문제