또는 어떤 이유로 든 불가능하다면 더 간단한 질문입니다. 레이아웃 페이지에서 현재 파일의 실제 디렉토리를 얻으려면 어떻게해야합니까?ASP.Net 웹 페이지에서 URL 라우팅을 비활성화하려면 어떻게합니까?
this.VirtualPath
은 레이아웃 파일 자체의 가상 경로를 나타내며 this.NormalizePath(".")
은 레이아웃 파일이있는 디렉토리의 가상 경로 만 가져옵니다.
그냥 어떤 사람이 아무 이유없이 http://example.com/index/some/other/junk을 입력했기 때문에 갑자기 작동하지 않는 상대 링크의 가능성이없는 사이트를 가질 수 있기를 바랍니다.
편집은 내가 무슨 뜻인지를 보여 :
TestLayout.cshtml을
<html>
<head>
<title>Test Page</title>
</head>
<body>
<div style="background: grey">
@Request.RawUrl<br />
@Request.Url.AbsolutePath<br />
@Request.Url.AbsoluteUri<br />
@Request.Url.LocalPath<br />
@Request.CurrentExecutionFilePath<br />
@Request.FilePath<br />
@Request.Path<br />
@VirtualPath<br />
</div>
<div style="background: red">
@RenderBody()
</div>
</body>
</html>
Test.cshtml
@{
Layout = "TestLayout.cshtml";
}
@Request.RawUrl<br />
@Request.Url.AbsolutePath<br />
@Request.Url.AbsoluteUri<br />
@Request.Url.LocalPath<br />
@Request.CurrentExecutionFilePath<br />
@Request.FilePath<br />
@Request.Path<br />
@VirtualPath<br />
당신이 http://example.com/Test/random/junk/at/the/end에 가면, 당신은 찾을 수 있습니다 모든 찌그러 뜨림을 정확하게 다듬는 유일한 선은 두 가지입니다. @VirtualPath
행 - 그러나 레이아웃 페이지의 VirtualPath
속성은 TestLayout.cshtml입니다. TestLayout.cshtml에서 Test.cshtml의 VirtualPath
속성에 액세스하려면 어떻게해야합니까?
에게 무엇입니까? Request.RawUrl 또는 Request.Url.AbsolutePath와 같습니다. http://stackoverflow.com/a/16693496/858905 – johna
기본적으로 Request 개체의 모든 속성을 시도했습니다. 내가 의미하는 바를 보여주기 위해 질문을 편집 할 것이다. – Santiclause
Test.cshtml의 출력을 예제로 추가 할 수 있습니까? – johna