我正在开发一个asp.net mvc web应用程序,我有以下viewModel: -
public class ServerJoin
{
public TMSServer Server { get; set; }
public Resource Resource { get; set; }
public Technology Technology { get; set; }
public ComponentDefinition ComponentDefinition { get; set; }
public SDOrganization Site { get; set; }
public SDOrganization Customer { get; set; }
public IEnumerable<NetworkInfo> NetworkInfo { get; set; }
}
在用于编辑和创建新ServerJoin对象的_createANDupdate视图中,我有以下内容: -
@model TMS.ViewModels.ServerJoin
<span class="f">IP Address</span>
@Html.EditorFor(model=>model.NetworkInfo.IPADDRESS)
@Html.ValidationMessageFor(model=>model.NetworkInfo.IPADDRESS) |
@Html.CheckBox("IsIPUnique",new { @checked = "checked" } ) IP Unique.
</div>
但我遇到的问题是NetworkInfo
是一个集合,因此我无法直接访问其IPADDRESS
属性。如果我写了以下foreach: -
@foreach(var n in Model.NetworkInfo)
我将获得空引用异常
对象引用未设置为objec的实例
所以我如何才能解决这个问题并具备以下条件: -
如果我在编辑视图中,我应该显示所有IP地址(1个编辑器,2个编辑器等)。
如果我在创建视图中,我应该只创建一个ip编辑器?
由于
答案 0 :(得分:0)
试试这个
@If(Model.NetworkInfo!=null)
{
Html.EditorFor(model=>model.NetworkInfo.IPADDRESS)
Html.ValidationMessageFor(model=>model.NetworkInfo.IPADDRESS) |
Html.CheckBox("IsIPUnique",new { @checked = "checked" } ) IP Unique.
}
else
{
foreach(var n in Model.NetworkInfo)
{
......
}
}
答案 1 :(得分:-1)
类似的东西:
@If(Model.NetworkInfo.Count() == 0)
{
Html.EditorFor(model=>model.NetworkInfo.IPADDRESS)
Html.ValidationMessageFor(model=>model.NetworkInfo.IPADDRESS) |
Html.CheckBox("IsIPUnique",new { @checked = "checked" } ) IP Unique.
}
else
{
foreach(var n in Model.NetworkInfo)
{
......
}
}