gpt4 book ai didi

c# - 试图允许空值但是... "Nullable object must have a value"

转载 作者:可可西里 更新时间:2023-11-01 07:52:07 24 4
gpt4 key购买 nike

我试图在我的下拉列表中允许空值,在我的数据库表中我已经为特定的 int 字段设置了允许空值,但是当我运行代码时我收到错误消息“可为空的对象必须有一个值” ,我认为问题可能出在 ModelState 中。

Controller

[HttpPost]
public ActionResult Edit(Student student)
{
if (ModelState.IsValid)
{
db.Entry(student).State = EntityState.Modified;
db.SaveChanges();
Loan w = new Loan()
{
StudentID = student.StudentID,
ISBN = student.ISBN.Value,
};
db.Loans.Add(w);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ISBN1 = new SelectList(db.Books, "ISBN", "Titulli", student.ISBN);
return View(student);
}

最佳答案

您在尝试 get value of nullable 时遇到此错误对象,没有值(value)。如果 Loan.ISBN 属性不可为空,那么您应该为该属性提供默认值

ISBN = student.ISBN.HasValue ? student.ISBN.Value : defaultValue
// or ISBN = student.ISBN ?? defaultValue
// or ISBN = student.ISBN.GetValueOrDefault()

如果 Loan.ISBN 属性可为空,则只需分配 student.ISBN 而无需访问可为空类型的 Value

ISBN = student.ISBN

关于c# - 试图允许空值但是... "Nullable object must have a value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com