2017-04-26 181 views
1

我不知道爲什麼我的InvoicePDF總是空。HttpPostedFileBase總是返回null

型號:

public class CreateEventViewModel 
{ 
    // [FileExtensions(Extensions = "pdf", ErrorMessage = "Akceptuję tylko pliki PDF")] 
    public HttpPostedFileBase InvoicePDF { get; set; } 
    ... 
} 

我還添加了在web.config中maxRequestLength="65536"並沒有幫助。

<form id="f"> 
    @using (Html.BeginForm("Create", "Event", FormMethod.Post, new { enctype = "multipart/form-data" })) 
    { 
     @Html.AntiForgeryToken() 
     <div> 
      @Html.TextBoxFor(model => model.InvoicePDF, new { type = "file" }) 
      @*@Html.ValidationMessageFor(model => model.InvoicePDF)*@ 
     </div> 
     ... 
     <div class="form-group"> 
      <div class="col-md-offset-2 col-md-10"> 
       <button type="button" class="btn btn-default" onclick="CountPrice()">Oblicz cenę</button> 
        <input type="submit" value="Zapisz" class="btn btn-default" /> 
        <button type="button" id="cancel" class="btn btn-default">Wyjdź</button> 
       </div> 
      </div> 
     </div> 
    } 
</form> 

控制器動作:

[HttpPost] 
public async Task<ActionResult> Create(CreateEventViewModel ev) 
{ 
    ... 
} 

我在方法開始時設置斷點,ev.InvoicePDF總是空。 問題在哪裏?

+0

你可以顯示你的創建操作? – Usman

+0

當然,但現在我什麼都不做與文件,只需要在開始斷點和檢查發佈模式,所以沒有什麼應該怎樣幫助。 [創建行動(https://pastebin.com/WCScM7Pn) – Cezar

+1

您可以刪除

,因爲已經有一個表單 – Usman

回答

1

刪除您的表單標籤。做一個查看來源。這將工作:

@model Testy20161006.Controllers.CreateEventViewModel 
@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index53</title> 
</head> 
<body> 
    <div> 
     @* remove this <form id="f">*@ 
      @using (Html.BeginForm("Create", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 
      { 
       @Html.AntiForgeryToken() 
       <div> 
        @Html.TextBoxFor(model => model.InvoicePDF, new { type = "file" }) 
        @*@Html.ValidationMessageFor(model => model.InvoicePDF)*@ 
       </div> 

       <div class="form-group"> 
        <div class="col-md-offset-2 col-md-10"> 
         <button type="button" class="btn btn-default" onclick="CountPrice()">Oblicz cenę</button> 
         <input type="submit" value="Zapisz" class="btn btn-default" /> 
         <button type="button" id="cancel" class="btn btn-default">Wyjdź</button> 
        </div> 
       </div> 
      } 
     @*</form>*@ 
    </div> 
</body> 
</html> 

public class HomeController : Controller 
{ 
    [HttpPost] 
    public async Task<ActionResult> Create(CreateEventViewModel ev) 
    { 
     return View(); 
    } 

    public ActionResult Index53() 
    { 
     CreateEventViewModel createEventViewModel = new CreateEventViewModel(); 
     return View(createEventViewModel); 
    } 
+0

我已經改變了形式爲'<形式行動= 「/事件/創建」 ENCTYPE = 「的multipart/form-data的」 方法= 「郵報」 的novalidate = 「NOVALIDATE」>'和工作完美。 – Cezar