Witam,
Jestem w trakcie nauki asp.net MVC5, postanowiłem stworzyć prostą stronę, lecz..
Mam problem z przekazaniem silnie typowanego obiektu z widoku do kontrolera.
Mój kod:
Model:
namespace MvcKursVS13.Models
{
public class Film
{
public Film()
{
Recenzje = new List<Recenzja>();
}
public int FilmId { get; set; }
[Display(Name = "Tytuł (PL)")]
public string TytulPl { get; set; }
[Display(Name = "Tytuł (EN)")]
public string TytulEn { get; set; }
[Display(Name = "Data premiery (Polska)")]
public DateTime DataPremieryPl { get; set; }
[Display(Name = "Data premiery (Świat)")]
public DateTime DataPremierySwiat { get; set; }
[Display(Name = "Gatunek")]
public string Gatunek { get; set; }
[Display(Name = "Reżyser")]
public string Rezyser { get; set; }
virtual public ICollection<Recenzja> Recenzje { get; set; }
}
}
Controller:
public async Task<ActionResult> Reviews(int id)
{
var film = await db.Filmy.FindAsync(id);
return View(film);
}
[HttpPost]
public async Task<ActionResult> Reviews(Film filmEntity)//, string textboxik)
{
var movie = await db.Filmy.FindAsync(filmEntity.FilmId);
// movie.Recenzje.Add(new Recenzja { DataNapisania = DateTime.Now, WlasciwaRecenzja = textboxik, Autor = User.Identity.Name });
await db.SaveChangesAsync();
ModelState.Clear();
return View(movie);
}
View:
@model MvcKursVS13.Models.Film
@{
ViewBag.Title = "Film" + Model.TytulPl;
// Layout = "_Layout.cs";
}
<h2>title</h2>
<tr>Wprowadź własną recenzję:</tr>
@using (Html.BeginForm())
{
// <input type="text" name="textboxik" style="width:550px;height:100px;" />
<input type="submit" value="Dodaj!" />
}
Nie jest to pełny kod, męczę się z tym już od jakiegoś czasu, więc pousuwałem niepotrzebne rzeczy.
Co jest problemem?
W pierwszym kontrolerze public async Task<ActionResult> Reviews(int id) __poprawnie __pobiera z bazy danych obiekt Film o danym id. Następnie __poprawnie __przekazuje go do widoku. Problem zaczyna się przy drugim kontrolerze ( public async Task<ActionResult> Reviews(Film filmEntity) - obiekt Film przekazany do niego jest zawsze nullem. Nie mam pojęcia dlaczego tak się dzieje - powinien przecież zostać przypisany obiekt silnie typowany z widoku.
Czy spotkał się ktoś może z czymś takim i wie co powinienem w tej sytuacji zrobić?
Z góry wielkie dzięki za odpowiedzi,
M.