1

送信ボタンのクリック時に、画像と一部のデータをビューからコントローラーに渡したいです。ベローは私のコードです

私の見解

@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 であるため、データがビューからコントローラーに渡されないことです。これを削除すると、データは渡されますが、画像は渡されません。

両方を一緒に送信するにはどうすればよいですか?

4

2 に答える 2

1

これを試して

@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;
    }
于 2012-11-08T10:33:47.050 に答える
1

これを試して

 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;
                    }
                }
于 2015-08-18T07:30:58.743 に答える