2017-04-22 2 views
0

HttpPostedFileBaseをコントローラーへのポスト時にモデルに添付できますか?mvcモデルからコントローラーポストへのファイルの転送

私はちょうどHttpPostedFileBaseモデルなしで渡すことができました。私は、ファイルを参照してください、私のブラウザでネットワーク]タブで

が付属なっているが、それは私のコントローラになったとき、それは

[HttpPost] 
public ActionResult ProcessFile(UploadMopdelWrapper model) 
{ 

} 

public class UploadMopdelWrapper 
{ 
    public UploadMopdelWrapper() 
    { 

    } 

    public UploadMopdelWrapper(UploadMopdel upload) 
    { 
     UploadModel = upload; 
    } 
    public HttpPostedFileBase SelectedFile { get; set; } 
    public UploadMopdel UploadModel { get; set; } 
    public IEnumerable<ExcelRecord> ExcelList { get; set; } 
} 

ヌルです。ここビュー

@using (@Html.BeginForm("ProcessFile", "Hcp", new { enctype = "multipart/form-data" })) 
{ 
    <div class="form-group"> 
     <div class="col-md-4 text-right"> 
      @Html.LabelFor(x => x.UploadModel.JobNumber, new { @class = "control-label" }) 
     </div> 
     <div class="col-md-8"> 
      @Html.TextBoxFor(x => x.UploadModel.JobNumber, new { @class = "form-control" }) 
      @Html.ValidationMessageFor(x=>x.UploadModel.JobNumber, null, new { @class = "text-danger" }) 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-4 text-right"> 
      @Html.LabelFor(x => x.UploadModel.JobName, new { @class = "control-label" }) 
     </div> 
     <div class="col-md-8"> 
      @Html.TextBoxFor(x => x.UploadModel.JobName, new { @class = "form-control" }) 
      @Html.ValidationMessageFor(x => x.UploadModel.JobName, null, new { @class = "text-danger" }) 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-4 text-right"> 
      @Html.LabelFor(x => x.UploadModel.NotificationEmail, new { @class = "control-label" }) 
     </div> 
     <div class="col-md-8"> 
      @Html.TextBoxFor(x => x.UploadModel.NotificationEmail, new { @class = "form-control" }) 
      @Html.ValidationMessageFor(x => x.UploadModel.NotificationEmail, null, new { @class = "text-danger" }) 
     </div> 
    </div> 

    <div class="form-group"> 
     <div class="col-md-4 text-right"> 
      <label class="control-label">Selkect a File:</label> 
     </div> 
     <div class="col-md-8"> 
      <input type="file" name="selectedFile" /> 
     </div> 
    </div> 
    <div class="col-md-offset-4 col-md-8"> 
     <input type="submit" class="btn btn-info btn-block col-md-12" /> 
    </div> 

} 
です

私のネットワークタブでは、私はこれを参照してください:

UploadModel.JobNumber:1 
UploadModel.JobName:w 
UploadModel.NotificationEmail:w 
selectedFile:week7_homework.sql 
+0

を使用しています。 –

答えて

2

あなたがそうでなければ、ルート値としてnew { enctype = "multipart/form-data" }て頂きますので

@using (@Html.BeginForm("ProcessFile", "Hcp",FormMethod.Post, new { enctype = "multipart/form-data" })) 

ようPostとしてフォームメソッドを設定する必要があります。正しくフォーマットされたとき、あなたの質問には、もう少し明確である - あなたはBeginFormの過負荷を見れば、あなたはhttp://stackoverflow.com/editing-helpをお読みください

FormExtensions.BeginForm Method (HtmlHelper, String, String, Object)

+0

愚かな私、私は完全にそれを無視します。 ありがとうございました! – kkdeveloper7

関連する問題