您好我的create方法收到一个int我怎么能允许它为null?所以我有时可以使用这种方法而不使用int。
public ActionResult Create(int id)
{
var model = new Job { IncidentID = id };
ViewBag.ActionCode = new SelectList(db.ActionTypes, "ActionCode", "ActionCode");
return View(model);
}
显然我已经尝试了
(int ? id)
但是在这里它不高兴,因为它无法转换int? to int here:
var model = new Job { IncidentID = id };
答案 0 :(得分:1)
试试这个
public ActionResult Create(int? id)
{
var model = new Job { IncidentID = id.GetValueOrDefault(0) };
//or var model = new Job { IncidentID = (int.parse(id) };
ViewBag.ActionCode = new SelectList(db.ActionTypes, "ActionCode", "ActionCode");
return View(model);
}
GetValueOrDefault(0)如果id没有值或null,则有助于指定零
或 试试这个
var model = new Job { IncidentID = id.HasValue ? id.Value : 0 };
答案 1 :(得分:0)
只需检查id
是否有值,并仅在IncidentID
具有以下内容时指定public ActionResult Create(int? id)
{
var job = new Job();
if (id.HasValue)
job.IncidentID = id.Value;
ViewBag.ActionCode = new SelectList(db.ActionTypes, "ActionCode", "ActionCode");
return View(job);
}
。
{{1}}
答案 2 :(得分:0)
您可以使用nullable int作为方法参数。 Nullable<T>
有HasValue
方法,用于检查是否已将值分配给可空变量。如果返回true,请使用Value
属性获取变量的值。
public ActionResult Create(int? id)
{
var model=new Job();
if(id.HasValue)
{
model.IncidentID=id.Value;
}
//to do :return something
}