ASP.Net MVC 3.0 C#プロパティが存在するかどうかを調べるには?

こんにちは私はプロパティが存在するかどうかをチェックしたいですか?

これは私のコードです

 string abpath=null;
    var hc= HttpContext.Current.Request.UrlReferrer;
    if (hc.AbsolutePath !=null)
    {
        var _temp = HttpContext.Current.Request.UrlReferrer.AbsolutePath;
        abpath = _temp.ToString();
    }

AbsolutePath が存在するかどうか確認したい

どのように私はチェックする方法を助けることができます。 チェックするためにAbsolutePathが存在しないため、エラーをスローします

御時間ありがとうございます

0
したがって、実際には、HttpContext.Current.Request.UrlReferrerがnullでないかどうかを確認する必要があります。
追加された 著者 jrummell,

2 答え

最初に、絶対パス(url)をローカルファイルシステムパスにマップする必要があります。次に、ファイルが存在するかどうかを確認できます。

var localPath = Server.MapPath(hc.AbsolutePath);
var exists = System.IO.File.Exists(localPath);

Update: I guess I misunderstood the question. The problem is, that if your page/action/etc is called directly (e.g. by entering its URL in the browser), then there is no Referrer (previous page). So you have to first check Request.UrlReferrer for null:

if (hc != null && hc.AbsolutePath != null)
{
 //...
}

BTW: since AbsolutePath is already a string, there is no need to call ToString()on it. So you can simplify your code some more:

if (hc != null)
{
  abpath = hc.AbsolutePath;
}
2
追加された
それは私の問題は、varでエラーをスローするlocalPath = Server.MapPath(hc.AbsolutePath);オブジェクトリファレンスがオブジェクトのインスタンスに設定されていません。
追加された 著者 HaBo,
うまくいきました
追加された 著者 HaBo,

最初にURLリファラを確認してください。 コードを以下のように使ってみてください。

 string abpath=null;
    var hc= HttpContext.Current.Request.UrlReferrer;
    if (hc !=null && !string.isNullOrEmpty(hc.AbsolutePath))
    {
        var _temp = HttpContext.Current.Request.UrlReferrer.AbsolutePath;
        abpath = _temp.ToString();
    }
0
追加された