6

次のコード行を使用してUrlReferrernull

@if (Request.UrlReferrer.AbsolutePath == null)

次のエラーが表示されます。

System.NullReferenceException: Object reference not set to an instance of an object.

私はaspが初めてで、探し回っていますが、私の質問に答えるものを見つけることができないようです. 私を混乱させるのは、次のように null を置き換える場合です。

@if (Request.UrlReferrer.AbsolutePath == "/Home")

...そして、絶対パスは確かに /Home です。コードは正常に動作します。確かに、ここで同じことを求めていますが、null?

4

2 に答える 2

11

リファラーがない場合、Request.UrlReferrerは null です。これにより、 Request.UrlReferrer.AbsolutePath (null オブジェクトのプロパティ) への参照が null 参照例外をスローします。

代わりに、試してください。

@if (Request.UrlReferrer == null)
于 2012-08-07T11:55:03.750 に答える
1

現在のページの現在のパスが必要な場合は、次のものを使用できます。

var absoluteUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;
string returnUrl = absoluteUrl.Replace(System.Web.HttpContext.Current.Request.Url.PathAndQuery, "/");
于 2015-01-13T13:55:56.260 に答える