0

HttpRequestのいろいろなメソッドを使ってURLを表示しようとしたり、VirtualPathUtilityオブジェクトも試してみたのですが、デフォルトの隠し部分「default.aspx」を表示することはできませんでした...取得するメソッドまたはプロパティは何ですか? URLのこの部分?

その理由は、URL のマップされたパスで File.Exist() を使用して、HTML ページを含むすべての 404 をキャッチするアプリケーション レベルでの 404 の作成に非常に近づいているためです。残念ながら、それはデフォルト ページでは機能しません。

反対のことをしようとしている記事はほとんど見たことがありません。それが発生した場合は default.aspx を削除しますが、ここではそうではありません。

編集:ここに私がしようとしているものがあります:

string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString();
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath));
if (!newUrl) throw new HttpException(404,"page not found");

ページがlocalhost/lexus/default.aspxの場合、エラーなしで正常に動作しますが、アドレスhttp://localhost/lexus/を入力すると、エラーがスローされます。 fullOriginalPath には "default.aspx" の部分がないため、Exists は false を返します。物理ファイルの有効性をチェックするより良い方法はありますか?

4

3 に答える 3

1

これがまったく可能だとは思わないので、IIS7.0 の書き換え機能を利用して、default.aspx が常に表示されるようにしました。

于 2009-07-02T22:10:10.173 に答える
0

AppRelativeCurrentExecutionFilePathオブジェクトのプロパティを探していHttpRequestます: http://msdn.microsoft.com/en-us/library/system.web.httprequest.apprelativecurrentexecutionfilepath.aspx

誰かがhttp://yourdomain.com/にリクエストを行った場合、 の値は次のAppRelativeCurrentExecutionFilePathようになります。"~/default.aspx"

于 2009-06-02T06:23:06.377 に答える