1

ファイルをアップロードしようとすると、HttpPosterFileBase で null を取得し続けます。

私は私の見解でこのコードを持っています:

@using (Html.BeginForm("Import", "Control", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="fileUpload"/>
    <input type="submit" value="Import" id="btnImport" class="button" />
}

そして、私のコントローラーでこのコード:

[HttpPost]
public ActionResult Import()
{    
     HttpPostedFileBase file = Request.Files[fileUpload];            
     Other codes...
}

私も自分のコントローラーでこれを試しました:

[HttpPost]
public ActionResult Import(HttpPostedFileBase fileUpload)
{        
    Other codes...
}

送信ボタンを押した後、「ファイル」の値は null になりました。

4

4 に答える 4

1

デフォルトのモデル バインダーは、ファイルを名前でバインドします。入力名はfileUpload.. パラメータ名は ですfile。それらを同じにするとうまくいきます。

于 2013-07-24T10:13:28.147 に答える
0

回答ありがとうございます。これらの答えはすべて正しいと思いますが、ページでフォームをネストしていることに気付いた後、問題を修正できました。ここで答えを読んだ後、解決策を見つけました: MVC. HttpPostedFileBase は常に null です

もう一度、ありがとう!乾杯!:)

于 2013-07-25T11:49:24.787 に答える
0

バインディングを正しく行っていない場合は、次のように変更してください。

[HttpPost]
public ActionResult Import(HttpPostedFileBase file)
{        
    // other stuff
}

に:

[HttpPost]
public ActionResult Import(HttpPostedFileBase fileUpload)
{        
    // other stuff
}
于 2013-07-24T10:15:22.683 に答える