我有一个Post控件在一个模型与一些字符串字段和一个图像.完全相同的代码适用于MVC4,但在MVC 5中,Request.Files.Count始终为0
我的模型有byte [],而不是HttpPostedFileBase
我的看法:
@using (Html.BeginForm("Create","HotelManager",FormMethod.Post,new { enctype = "multipart/form-data",data_ajax = "false" })) { @Html.AntiForgeryToken() @Html.TextBoxFor(model => model.Title,new { @class = "form-control" }) @Html.TextAreaFor(model => model.Description,new { @class = "form-control",@rows = "7" }) <input type="file" class="form-control filestyle"> <input type="submit" value="Submit" class="btn btn-block" /> }
我已经尝试省略了data_ajax =“false”,但没有用.
我的邮政主管如下:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Title,Description,Image")] Hotel hotel) { if (ModelState.IsValid) { // deal with the uploaded file if (Request.Files.Count > 0) { HttpPostedFileBase file = Request.Files[0]; if (file != null && file.ContentLength > 0) { // Code to process image,resize,etc goes here } } // Other code to add the hotel to db goes here }
在调试器中,我看到Request.Files.Count总是为零,我不知道为什么?
我已经从另一个MVC4项目中复制了视图和控制器代码,它的工作正常.
Key Value Request POST /HotelManager/Create HTTP/1.1 Accept text/html,application/xhtml+xml,*/* Referer http://localhost:4976/HotelManager/Create Accept-Language en-US,en;q=0.5 User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; ASU2JS; rv:11.0) like Gecko Content-Type multipart/form-data; boundary=---------------------------7de207070a24 Accept-Encoding gzip,deflate Host localhost:4976 Content-Length 946 DNT 1
在IE Developer窗口中,我看到窗体正文是空的.