ユーザーがプロファイルを編集し、必要に応じて画像をアップロードするフォームを作成したかったのですが、ここに私のビューがあります
//フォーム文字列@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 でした
データベースに画像名のみを保存したいので、従業員のモデルには画像ファイル名のみが含まれています。