2013-08-29 3 views
3

Google과 Stack Exchange에서이 질문에 대한 답변을 검색해 보았습니다. Href() 방법 (이전에 본 문서)에서 일부 문서를 산출했지만이 방법에 대한 질문은 매우 모호하거나 존재하지 않는 것으로 보입니다. 나는 아직도 그것을 왜 사용해야하는지에 대해 당황 스럽다.C#의 "WebPageExecutingBase.Href()"메서드는 언제/왜 사용해야합니까?

MSDN 문서 :http://msdn.microsoft.com/en-us/library/system.web.webpages.webpageexecutingbase.href(v=vs.111).aspx

나는 그것이 상대 경로에서 절대 URL을 구축하는 것이,이 문서를 통해 알 수 있습니다.

내 질문은 :

  1. 가 왜이 작업을 수행해야 하는가?
  2. 상대 경로가 테스트 환경 외부와 웹 서버에서도 제대로 작동해야합니까?
  3. Href() 방법을 통합하려면 내 사이트의 상대 경로 중 하나를 변경해야하나요? (예 : Context.RedirectLocal("~/")에서 Context.RedirectLocal(Href("~/"))으로 변경)
  4. ASP.NET 웹 페이지 환경을 고려한이 방법과 함께 사용하는 모범 사례는 무엇입니까?

너무 단순한 것보다 혼란 스럽다.하지만 내 웹 사이트가 깨 졌거나 보안상의 허점이 있다는 것을 알기가 싫어. (첫인상은 살인자가 될 수있다.)).

답변

2

웹 페이지 1을 사용하고 가상 경로가 항상 절대 URL에 올바르게 매핑되도록하려면이 방법을 명시 적으로 사용해야합니다. Web Pages 2에서 파서가 cshtml 파일의 url에 물결 표시 (~)를 발견하면 Href 메서드가 프레임 워크에 의해 호출됩니다.

<script type="text/javascript" src="~/Scripts/jquery.js"></script> 

Href 메서드를 명시 적으로 사용하거나 틸드하지 않으면 경로가 올바르게 해석되지 않을 수 있습니까? 예를 들어 호스팅을 변경하면 사이트의 루트 경로 구조가 변경되면 작동하지 않을 수 있습니다. 내부 폴더 구조가 변경되거나 파일을 이동하는 경우에도 작동하지 않을 수 있습니다. 그럴 가능성이 희박하다면이 방법을 사용하는 것에 대해 걱정할 필요가 없을 것입니다. Href 메서드가 물결 기호로 바뀔 때까지 나는 그것을 사용하지 않는 경향이 있습니다. 지금은 항상 사용하기가 훨씬 쉽기 때문에 항상 사용하며, 앞으로 어떤 단계에서 유감스럽게 생각하는 것보다 각 URL에 하나의 추가 키 입력을 추가하는 것을 선호합니다.

이 페이지 아래로 절반 방법에 대해 Href에 대한 자세한 내용을 확인할 수 있습니다 http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

+0

환상적인 대답을, 마이크, 나는 그것을 감사! 나는 내가 이해하기 시작했다고 생각한다. ** 내 환경의 경우 : ** 서버 쪽 코드 인 경우 항상 * 물결표를 사용하고 있습니다. 그러나 적어도 슬래시 (와 * NOT * 물결표)를 사용합니다 (적어도) HTML (또는 JavaScript/jQuery). 예를 들어, 위의 예제에서 C# 함수 내부에 나타나지 않는 한'.cshtml' 파일에 있던 물결표는 사용하지 않았을 것입니다. '.cshtml' 파일에 있기 때문에, 나는 당신의 예제에서 그것들을 포함하는 것이 유익 할 수 있음을 알 수있었습니다. 그것이 당신이 추천하는 것입니까? – VoidKing

+0

내가 말했듯이, 그것은 내가하는 일이다. 그래서 나는 그것을 추천한다고 생각한다. –