Почему это текстовое поле отправляет данные правильно, но оно принимается, когда Null и Visual Studio вызывает исключение? - PullRequest
0 голосов
/ 28 апреля 2019

Я отправляю данные от просмотра к действию. Браузер Chrome показывает, что Genre_Id отправляется правильно , поскольку вы видите прикрепленный снимок экрана, но когда он получен действием, Visual Studio вызывает исключение и отображает его как Null / 0 , как вы видите прикрепленный скриншот. Так почему же это происходит?

enter image description here

enter image description here

это модель фильма

 public class Movie
{
    public int Id { get; set; }

    [Required]
    [StringLength(255)]
    public string Name { get; set; }

    [Required]
    [Display(Name="Created on")]
    public DateTime DateAdded { get; set; }

    [Required]
    [Display(Name = "Release Date")]
    public DateTime ReleaseDate { get; set; }

    [Required]
    [Display(Name = "Number in Stock")]
    public int NumberInStock { get; set; }

    public Genre Genre { get; set; }

    [Display(Name="Genre")]
    public int Genre_Id;

}

это форма

@using(Html.BeginForm("Save", "Movies"))
{
<div class="form-group">
    @Html.LabelFor(m => m.Movie.Name)
    @Html.TextBoxFor(m => m.Movie.Name, new { @class="form-control"})
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Movie.DateAdded)
    @Html.TextBoxFor(m => m.Movie.DateAdded, new { @class="form-control"})
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Movie.ReleaseDate)
    @Html.TextBoxFor(m => m.Movie.ReleaseDate, new { @class="form-control"})
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Movie.NumberInStock)
    @Html.TextBoxFor(m => m.Movie.NumberInStock, new { @class="form-control" })
</div>
<div class="form-group">
    @Html.LabelFor(m => m.Movie.Genre_Id)
    @Html.TextBoxFor(m => m.Movie.Genre_Id, new { @class="form-control"})
</div>
@Html.HiddenFor(m => m.Movie.Id)
<button  type="submit" class="btn btn-primary">Save</button>
}

1 Ответ

2 голосов
/ 28 апреля 2019

Посмотрите на значки, член Genre_Id выглядит иначе. Это потому, что это поле, а не свойство.

MVC требует, чтобы члены модели были свойствами. Добавьте { get; set; } к своей декларации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...