我的数据库中有Industry
个类型。如果为null,则显示如下错误:
“可以为空的对象必须有值。”
我希望我的值在空值时显示为空。
这是我的代码:
<p>
<strong>Industry Type:</strong>
<%: Model.GetIndustry(Model.IndustryId.Value).Name%>
</p>
有人有想法吗?请帮帮我......
答案 0 :(得分:0)
检查行业是否先退回,然后写出名称(如果有的话)
<%
var industry = Model.GetIndustry(Model.IndustryId.Value);
%>
<%: industry == null ? "" : industry.Name %>
IndustryId
可以为空吗?然后你可以这样做
<%
var industry = Model.GetIndustry(Model.IndustryId.GetValueOrDefault(0));
%>
并且在GetIndustry
方法中,如果id为零,则可以返回null
。
public Industry GetIndustry(int id) {
if (id==0) return null;
// else do your stuff here and return a valid industry
}
答案 1 :(得分:0)
它类似于“von v”的答案,但我认为“Nullable对象的错误必须有一个值”。可以来自IndustryId,因为它可以为空,所以最好先检查一下:
<p>
<strong>Industry Type:</strong>
<%:if(Model.IndustryId.HasValue)
{
var idustry = Model.GetIndustry(Model.IndustryId.Value);
if(industry!= null)
industry.Name
}
else
{
""
}
%>
</p>
在我看来,这样做很好
Model.GetIndustry()
在后端,与控制器一样,然后通过viewstate返回行业, 比如检查:
string industryName = "";
if(Industry.IndustryId.HasValue){
var industry = YourClass.GetIndustry(Industry.IndustryId.Value);
industryName = industry!= null ? Industry.Name : "" ;
}
ViewBag.IndustryName= industryName;
然后在视图中使用ViewBag:
<p>
<strong>Industry Type:</strong>
<%: ViewBag.IndustryName %>
</p>
最好将检查与视图分开并在代码中执行逻辑。
希望它有所帮助。
答案 2 :(得分:0)
字符串可以接受null或空值,为什么不尝试string.IsNullOrEmpty(Model.IndustryId.Value)
这是非常自我解释的。在你的控制器中,
string yourValue = string.empty;
yourValue = Model.GetIndustry(Model.IndustryId.Value).Name;
if(string.IsNullOrEmpty(yourValue))
{
//display your result here!
}
ViewBag.IndustryValue = yourValue;
答案 3 :(得分:0)
请尝试一下
<p>
<strong>Industry Type:</strong>
<%: Model.IndustryId.HasValue ? Model.GetIndustry(Model.IndustryId.Value).Name : string.Empty%>
</p>
答案 4 :(得分:0)
我发现了问题。
<p>
<strong>Industry Type:</strong>
<% if (Model.IndustryId.HasValue)
{ %>
<%: Model.GetIndustry(Model.IndustryId.Value).Name%>
<%}
else
{ %>
<%:Model.IndustryId==null ? "": Model.GetIndustry(Model.IndustryId.Value).Name %>
<%} %>
</p>