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)

null参照例外が発生します

オブジェクト参照がオブジェクトのインスタンスに設定されていません

それで、どうすればこの問題を解決でき、次のことができますか:-

  1. 編集ビュー内にいる場合は、すべての IP アドレス (editorfor 1、editorfor 2 など) を表示する必要があります。

  2. 作成ビュー内にいる場合は、ip エディターを 1 つだけ作成する必要があります。

ありがとう

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 に答える