Нужен выбор нескольких книг на форме
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public string Author { get; set; }
public int Price { get; set; }
public bool Selected { get; set; }
}
public class Purchase
{
public int PurchaseId { get; set; }
public string Person { get; set; }
public string Address { get; set; }
public List<Book> Books { get; set; }
}
public class DbInitializer : DropCreateDatabaseAlways<BookContext>
{
protected override void Seed(BookContext context)
{
context.Books.Add(new Book { Name = "Война и мир", Author = "Л.Н. Толстой", Price = 220 });
context.Books.Add(new Book { Name = "Отцы и дети", Author = "И. Тургенев", Price = 180 });
context.Books.Add(new Book { Name = "Чайка", Author = "А. Чехов", Price = 150 });
base.Seed(context);
}
}
public class HomeController : Controller
{
BookContext db = new BookContext();
[HttpGet]
public ActionResult Buy()
{
return View(db.Books);
}
[HttpPost]
public ActionResult Result(Purchase purchase)
{
purchase = purchase; // <<<<<<<<< Here I get Books field == null <<<<<<<<<<<<<<<<<<
return View();
}
}
And, Finally, the view of Buy method:
@using HtmlHelpers.Models;
@model IEnumerable<Book>
@using (Html.BeginForm("Result", "Home", FormMethod.Post))
{
<div class="col-md-6">
<h2>Book purchasing</h2>
<table class="table">
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@item.Author</td>
<td>@item.Price</td>
<td>
@Html.CheckBoxFor(c => item.Selected)
@Html.HiddenFor(c => item.Id)
@Html.HiddenFor(c => item.Name)
@Html.HiddenFor(c => item.Author)
@Html.HiddenFor(c => item.Price)
</td>
</tr>
}
</table>
<input class="form-control" name="Person" placeholder="Name" />
<input class="form-control" name="Address" placeholder="Address" />
<input type="submit" class="btn btn-success" name="Submit" />
</div>
}
В итоге я не получаю лист выбранных книг в экземпляре покупки. Что не так?
[HttpGet]
public ActionResult Buy()
{
return View(new Purchase() { Books = db.Books.ToList() });
}
@model Purchase
...
<table class="table">
@for (int i = 0; i < Model.Books.Count; i++)
{
<tr>
<td>@Model.Books[i].Id</td>
...
<td>
@Html.CheckBoxFor(c => Model.Books[i].Selected)
@Html.HiddenFor(c => Model.Books[i].Id)
...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На странице есть такой блок:
Я использую Standart API Твиттера для извлечения картинок из твиттовДля этого я использую конструкцию
Нужно собрать данные заказа после его отправки, но выдает ошибку