verwende, muss ich Bild in asp mvc 5 hochladen.Modell nicht ausfüllen Wenn ich HttpPostedFileBase
aber wenn ich Bild auswählen, zeigen Sie mich in The UserPhoto field is required.
.
dies mein Code:
public async Task<ActionResult> Register(RegisterViewModel model, HttpPostedFileBase pic)
{
if (ModelState.IsValid)
{
if (pic != null)
{
pic = Request.Files[0];
var ext = System.IO.Path.GetExtension(pic.FileName);
if (ext == ".jpg" || ext == ".png" || ext == ".jpeg")
{
string filename = model.Name + model.PhoneNumber + ext;
pic.SaveAs(@"~/Image/" + filename);
model.UserPhoto = filename;
}
}
var user = new ApplicationUser { Name = model.Name, Family = model.Family, PhoneNumber = model.PhoneNumber, UserName = model.Email, Email = model.Email};
user.UserPhoto=model.UserPhoto;
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
// If we got this far, something failed, redisplay form
return View(model);
}
HttpPostedFileBase pic
ist Wert haben, aber Modell ist null.
Wie kann ich dieses Problem lösen?
in form name ist pic, aber un controller name ist userphoto, danke – Kianoush
Nein. In controller ist der name 'pic' auch, weil du das als param hast. Unabhängig davon muss der Name der Eigenschaft form und action param/model übereinstimmen. Wenn Sie möchten, dass der Wert in "UserPhoto" übernommen wird, muss Ihre Eingabe in Ihrem Formular auch "UserPhoto" lauten. –