ASP.NET MVC Create方法null int

时间:2014-03-01 14:37:50

标签: c# asp.net-mvc asp.net-mvc-5

您好我的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 };

3 个答案:

答案 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
}