1

我正在开发一个 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)

我会得到空引用异常

对象引用未设置为对象的实例

那么我如何解决这个问题并拥有以下内容: -

  1. 如果我在编辑视图中,我应该显示所有 IP 地址(1 个编辑器,2 个编辑器等)。

  2. 如果我在创建视图中,我应该只创建一个 ip editorfor 吗?

谢谢

4

2 回答 2

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)
    {
       ......
     }

}
于 2013-08-08T12:38:14.127 回答
-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)
    {
       ......
     }

}
于 2013-08-08T12:25:49.230 回答