值不能为空:_context.Add(models.Reservations.FirstOrDefault());
value cannot be null: _context.Add(models.Reservations.FirstOrDefault());
我遇到错误:
ArgumentNullException: Value cannot be null. (Parameter 'source')
这是我的操作代码,我从中得到错误:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Models.Models models)
{
if (ModelState.IsValid)
{
_context.Add(models.Reservations.FirstOrDefault());
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(models);
}
这是我的模型class:
public class Models
{
public IEnumerable<ReservationsModel> Reservations { get; set; }
public IEnumerable<RoomsModel> Rooms { get; set; }
}
这是我如何从视图中获取值的示例:
<select asp-for="Reservations.FirstOrDefault().RoomId" class="form-select" aria-label="Default select example">
@foreach (var item in Model.Rooms)
{
<option asp-for="Reservations.FirstOrDefault().RoomId" value="@Html.DisplayFor(modelItem => item.RoomID)">@Html.DisplayFor(modelItem => item.RoomID)</option>
}
</select>
最后是我的 GET 方法,以备不时之需:
public async Task<IActionResult> Create()
{
var obj = new Models.Models
{
Reservations = await _context.Reservations.ToListAsync(),
Rooms = await _context.Rooms.ToListAsync()
};
return View(obj);
}
我自己解决了这个问题!真的很简单!!!
刚刚在相同类型的模型 class 中创建了另一个 属性,但不是 IEnumerable,它只是类型 ReservationsModel:
public class Models
{
public IEnumerable<ReservationsModel> Reservations { get; set; }
public ReservationsModel Reservations2 { get; set; }
public IEnumerable<RoomsModel> Rooms { get; set; }
}
并使用它将数据从视图传递到控制器。
感谢任何回答我问题的人!
我遇到错误:
ArgumentNullException: Value cannot be null. (Parameter 'source')
这是我的操作代码,我从中得到错误:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Models.Models models)
{
if (ModelState.IsValid)
{
_context.Add(models.Reservations.FirstOrDefault());
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(models);
}
这是我的模型class:
public class Models
{
public IEnumerable<ReservationsModel> Reservations { get; set; }
public IEnumerable<RoomsModel> Rooms { get; set; }
}
这是我如何从视图中获取值的示例:
<select asp-for="Reservations.FirstOrDefault().RoomId" class="form-select" aria-label="Default select example">
@foreach (var item in Model.Rooms)
{
<option asp-for="Reservations.FirstOrDefault().RoomId" value="@Html.DisplayFor(modelItem => item.RoomID)">@Html.DisplayFor(modelItem => item.RoomID)</option>
}
</select>
最后是我的 GET 方法,以备不时之需:
public async Task<IActionResult> Create()
{
var obj = new Models.Models
{
Reservations = await _context.Reservations.ToListAsync(),
Rooms = await _context.Rooms.ToListAsync()
};
return View(obj);
}
我自己解决了这个问题!真的很简单!!! 刚刚在相同类型的模型 class 中创建了另一个 属性,但不是 IEnumerable,它只是类型 ReservationsModel:
public class Models
{
public IEnumerable<ReservationsModel> Reservations { get; set; }
public ReservationsModel Reservations2 { get; set; }
public IEnumerable<RoomsModel> Rooms { get; set; }
}
并使用它将数据从视图传递到控制器。 感谢任何回答我问题的人!