C# ASP.NET MVC创建方法null int
嗨,我的create方法收到一个int,我怎么能允许它为null?所以我有时可以在不使用int的情况下使用这个方法C# ASP.NET MVC创建方法null int,c#,asp.net-mvc,asp.net-mvc-5,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"); r
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?要在此处输入,请执行以下操作:
var model = new Job { IncidentID = id };
试试这个
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);
}
GetValuerDefault(0)如果id没有值或为空,则帮助分配零
或
试试这个
只需检查
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);
}
可以使用int作为方法参数Nullable
有一个HasValue
方法,用于检查是否已将值分配给Nullable变量。如果返回true,则使用Value
属性获取变量的值
public ActionResult Create(int? id)
{
var model=new Job();
if(id.HasValue)
{
model.IncidentID=id.Value;
}
//to do :return something
}
这会给你一个编译器错误,如果你在网上搜索它,你会得到答案:使用
id.Value
。当id
没有通过时,应该给IncidentID
分配什么?你必须更改class Job
int?
上的IncidentID属性。我不是100%同意你的要求,而是同意必须支持空值,或者您必须先将id转换为非空值,然后才能进行赋值。@Sergey Berezovskiy用户输入不会定义任何包含的内容。@Mike Cheel暂时可以为null,但在写入数据库时不可以为null。您如何知道在id未传递的情况下应分配0
?我将添加GetValuerDefault的重载,其中可以指定默认值。我已经更新了我的答案,盖伊,我将删除否决票,但这仍然是一个猜测。如果id未通过,OP可能不需要创建新作业。我知道您想帮助OP,但OP没有提供足够的信息来回答他的问题。你的回答说明了这一点,但这对OP没有帮助。@Sergey的问题必须由OP回答才能正确回答这个问题,这不仅仅是关于作业。此外,考虑投票关闭作为复制,而不是给出一个答案已经存在很多次。我已经这样做,先生,请参阅我的。answer@RameshRajendran不,你没有。您正在分配0
Yesid.HasValue
为false,则我分配了0。@RameshRajendran是否需要我向您解释差异?好的,先生。我明白了。谢谢,先生,我已经这么做了,请看我的回答
public ActionResult Create(int? id)
{
var model=new Job();
if(id.HasValue)
{
model.IncidentID=id.Value;
}
//to do :return something
}