1

写真のあるオブジェクトストリートがあります。新しいストリートオブジェクトを作成するのと同じフォームにアップロードを実装しようとしています。したがって、フィールドを含むMVCWebフォームをイメージします

  • 道の名前
  • 街路番号
  • 写真1
  • 写真2
  • 写真3

さて、create.cshtmlページにフォームStreetNameStreetNumberフィールドがあります

<input type="file" name="postedImages" />
<input type="file" name="postedImages" />
<input type="file" name="postedImages" />

このフォームを送信すると、これらのデータをStreetControllerに送信してさらに処理します

 [HttpPost]
 public ActionResult Create(StreetViewModel newData, IEnumerable<HttpPostedFileBase> postedImages)
 {
    //create object and save stretname and streetnumber
    //process posted images
    foreach(var image in postedImages)
    {
        //this is where error occured if I post only one or two images from my view
       if(image.ContentLength >0)
       {
          //process and save images
       }
    }

 }

コメント欄の中で読むことができるように、ウェブフォームに提供されている正確な数の画像を投稿するとすべて問題ありませんが、1つまたは2つの画像を送信するとエラーが発生しました。

これを解決する方法は?ありがとう

4

3 に答える 3

2

プロパティnullにアクセスする前にチェックを追加しますContentLength

if((image!=null) && (image.ContentLength >0))
{
      //process and save images
}
于 2012-08-07T15:33:42.510 に答える
2

foreach(var image in postedImages.Where(pi => pi != null))

于 2012-08-07T15:35:44.700 に答える
2

あなたはこのようなことをすることができます:

If(image != null)
    if(image.ContentLength > 0)
        {
           //code
        }

プロパティを取得する前にnullかどうかを確認してください。これが、エラーの原因です。

于 2012-08-07T15:37:07.483 に答える