2012-11-08 209 views
0

我希望將圖像以及視圖中的一些數據傳遞給控制器​​。 貝婁是我的代碼將圖像和數據從視圖傳遞到控制器

我查看

@using (Html.BeginForm("AccountPhotoPost", "Post", FormMethod.Post, new {enctype = "multipart/form-data", accountId = Model.accountId })) 
{ 
     <text>Post Photo : </text> <input type="file" name="file" id="file" /> 

     <input type="submit" value="Post Photo" id="saveButton"/> 
} 

我的控制器動作

[HttpPost] 
public ActionResult AccountPhotoPost(HttpPostedFileBase file, long accountId) 
    { 

    } 

這裏的問題是,因爲它是FormMethod.Post,數據不會從視圖中傳遞,如果到控制器&我刪除它然後數據通過但圖像不通過。

如何將兩者一起發送?

回答

0

試試這個

@model SomeModel 
@using (Html.BeginForm("AccountPhotoPost", "Post", FormMethod.Post, new {enctype = "multipart/form-data"})) 
{ 
     <text>Post Photo : </text> <input type="file" name="file" id="file" /> 

     @Html.HiddenFor(model => model.accountId) 
     <input type="submit" value="Post Photo" id="saveButton"/> 
} 

在控制器

[HttpPost] 
public ActionResult AccountPhotoPost(SomeModel model ,HttpPostedFileBase file) 
    { 
     var Id = model.accountId; 
    } 
0

試試這個, HttpPostedFileBase hpf = Request.Files["file"] as HttpPostedFileBase; var httpPostedFileBase = Request.Files["file"]; if (httpPostedFileBase != null && (hpf != null && httpPostedFileBase.ContentLength > 0))
{ var postedFileBase = Request.Files["file"]; if (postedFileBase != null) { fileName = postedFileBase.FileName; BinaryReader reader = new BinaryReader(postedFileBase.InputStream); byte[] attachmentBinary = reader.ReadBytes((int)postedFileBase.ContentLength); hcUserReview.AttachmentByteValue = attachmentBinary; hcUserReview.FileName = fileName; } }

相關問題