我在数据绑定和 Razor 页面上苦苦挣扎
我无法找到解决方案。可能我问的问题不正确。所以我希望你能帮我指出正确的方向。
我想要一个页面来创建预订以收集所有必要的数据,以便在一切完成后将其发布到 Web api。
在该页面上,我想为 wooking 收集必要的数据,并希望将 x 预订详细信息添加到预订中。
数据模型
public class Booking
{
[Key]
public int Id { get; set; }
public string Reference { get; set; }
public List<BookingDetail> BookingDetails { get; set; }
}
public class BookingDetail
{
[Key]
public int Id { get; set; }
public int Pieces { get; set; }
public string Marks { get; set; }
}
我想做的是为预订创建一个创建页面。到目前为止,我遵循了这个说明,这是有效的链接
这个缺失的部分是我想在同一个 Razor 页面上添加新的预订详细信息。
所以我想查看所有添加的预订详细信息的列表,并且我希望有文本框来添加新的预订详细信息。
System.NullReferenceException
我的想法是执行以下操作,但由于 Booking 为空,我收到了一个:
@page
@model Onlinebooking.Web.Pages.BookingModel
@{
ViewData["Title"] = "Booking";
}
<h1>Booking4</h1>
<form method="post">
Reference: <Input asp-for="Booking.Reference" /><br />
Pieces: <input asp-for="Booking.BookingDetails[0].Pieces" /><br />
Marks: <input asp-for="Booking.BookingDetails[0].Marks" /><br />
<br />
<input type="submit" value="submit" />
</form>
<form method="post" asp-page-handler="DeleteBookingDetails">
@for (var i = 0; i < @Model.Booking.BookingDetails.Count(); i++)
{
@Html.LabelFor(x => x.Booking.BookingDetails[i].Pieces)
@Html.LabelFor(x => x.Booking.BookingDetails[i].Marks)
}
</form>
甚至可以在一页上完成所有这些操作,还是我应该朝着不同的方向前进?
谢谢你的帮助!