7

ユーザーがプロファイルを編集し、必要に応じて画像をアップロードするフォームを作成したかったのですが、ここに私のビューがあります

//フォーム文字列@using(Html.BeginForm("EditProfile","Employee",FormMethod.Post, new { enctype = "multipart/form-data " }))

//HTML入力 <input type="file" name="file" id="file"/>

//送信<input type="submit" name="SubmitBtn" value="SaveProfile" /> <input type="submit" name="SubmitBtn" value="Cancel" />

今私のコントローラー

    //Profile Modification
    [Authorize]
    [HttpPost]
    public ActionResult EditProfile(employer model, string SubmitBtn,HttpFileCollection file)
    {
        switch (SubmitBtn)
        {
            case "SaveProfile":
                try
                {
                    if (ModelState.IsValid)
                    {
                          //the file is always null
                        if (file != null)
                        {
                             //Function I want to Apply on file
                             model.logoname = logouploded(file);  
                            return RedirectToAction("Profile", "Employer");
                        }
                        return RedirectToAction("EditProfile");
                    }
                    //ChangeEmployeeProfile(model);

                }
                catch (Exception ex)
                {
                    ViewBag.warn = ex.Message;
                    return View(model);
                }
                break;
            case "Cancel":
                return RedirectToAction("index");
        }
        return View(model);
    }

どのファイルをアップロードしても、ファイルは常に null になりますが、Action Function のパラメーターとして HttpFileCollectionBase も試しましたが、まだファイルは null でした

データベースに画像名のみを保存したいので、従業員のモデルには画像ファイル名のみが含まれています。

4

1 に答える 1

12

HttpFileCollection タイプをHttpPostedFileBaseに変更します。

于 2012-12-06T09:13:01.943 に答える