Hej, od niedawna staram się coś robić w asp.net mvc 4, mam teraz problem z odczytaniem obiektu który powinien zostać przesłany przez formularz. Chcę zrobić coś w stylu galerii zdjęć z możliwością ich komentowania. mam taki model:
public class Picture
{
public int Id { get; set; }
public string Author { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Extension { get; set; }
public virtual List<Coment> Coments { get; set; }
}
public class Coment
{
public int Id { get; set; }
public string Author { get; set; }
public string Content { get; set; }
public DateTime Date { get; set; }
}
W kontrolerze za dodawanie zdjęć mają odpowiadać te 2 metody
[HttpGet]
public ActionResult AddPicture()
{
return View();
}
[HttpPost]
public ActionResult AddPicture(Picture picture)
{
HttpPostedFileBase Picture = Request.Files["Picture"];
if (Picture != null)
{
string name = Picture.FileName;
string extension = name.Substring(name.LastIndexOf('.'));
Picture.SaveAs(@"C:\Users\Adam\Documents\Visual Studio 2012\Projects\YourPictures\YourPictures.WebUI\Pictures\" + picture.Name + "_" + picture.Id + extension);
picture.Extension = extension;
}
repository.AddPicture(picture);
TempData["message"] = String.Format("Picture was succesfuly added");
return RedirectToAction("Index");
}
Widok dla AddPicture() :
@model YourPictures.Domain.Entities.Picture
@{
ViewBag.Title = "AddPicture";
}
<h2>AddPicture</h2>
@using (Html.BeginForm("AddPicture", "Pictures", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<p>Author Name @Html.EditorFor(x=>x.Author)</p>
<p>Picture Name @Html.EditorFor(x=>x.Name)</p>
<p>Description @Html.EditorFor(x=>x.Description)</p>
<p>Image Source <input type="file" name="Picture" /> </p>
<input type="submit" value="Add new picture" />
}
Ustawiam breakpoint w metodzie
public ActionResult AddPicture(Picture picture)
i sprawdzam jak wygląda argument picture, za każdym razem jest null. Wie ktoś co może być przyczyną? Pozdrawiam