为什么我收到以下错误:
对象引用未设置为对象的实例。
我知道它因为它告诉我'它不能将它保存为“null”但它有一个值,或者我做错了吗?我已经尝试了不同的方法,但没有看到我应该怎么做?
型号:
public class BookTime
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public int Zip { get; set; }
public string City { get; set; }
public string Address { get; set; }
public string Month { get; set; }
public string Date { get; set; }
}
的Controler:
public ActionResult _BookTime(BookTime Booktime)
{
db.BookTimes.Add(Booktime);
Booktime.Month = Request.Form["Month"].ToString();
Booktime.Date = Request.Form["Date"].ToString();
db.SaveChanges();
return Redirect("Index");
}
查看:
<div class="col-sm-6">
<b>Månede</b>
<select class="form-control" id="Month" required>
<option value="0">Vælg Dag</option>
<option value="Januar">Januar</option>
<option value="Febuar">Febuar</option>
<option value="Marts">Marts</option>
<option value="April">April</option>
<option value="Maj">Maj</option>
</select>
</div>
<div class="col-sm-6">
<b>Dag</b>
<select class="form-control" id="Date" required>
<option value="0">Vælg Dato</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</div>
答案 0 :(得分:0)
你真的需要防御性地编码。而不只是“快乐的道路”。
抛出一些有意义的例外
public ActionResult _BookTime(BookTime bt)
{
if(null != bt)
{
if(null!=Request.Form["Month"])
{
bt.Month = Request.Form["Month"].ToString();
}
else
{
throw new NullReferenceException("Month was null");
}
if(null!=Request.Form["Date"])
{
/* if bt.Date is a date..what are you doing to make sure the form value is a date?? */
bt.Date = Request.Form["Date"].ToString();
}
else
{
throw new NullReferenceException("Date was null");
}
}
else
{
throw new NullReferenceException("bt was null");
}
if(null!=db)
{
db.BookTimes.Add(bt);
db.SaveChanges();
}
else
{
throw new NullReferenceException("Db was null");
}
return Redirect("Index");
}