2013-05-21 126 views
2

我有一個應用程序的asp.net mvc。在控制器我有此:列表模型剃刀視圖

public ActionResult Index() 
     { 
      Upload.Models.ClientModels model1 = new Models.ClientModels(); 
      ArrayList client = model1.Client_List(); 

      Upload.Models.AkeoModels model2 = new Models.AkeoModels(); 
      ArrayList akeo = model2.Akeo_List(); 


      ArrayList model = new ArrayList(); 
      model.Add(client); 
      model.Add(akeo); 
      return View(model); 




     } 

我通過兩個級聯的列表提供給視圖索引作爲模型:

@{ 
    ViewBag.Title = "Bienvenue"; 
    int i = 0; 
} 

<hgroup class="title"> 
    <h1 style="color:darkcyan">Liste des clients</h1> 
</hgroup> 

<section > 

<form> 


<table style="margin-top: 50px;"> 
    <tr ><td ></td> 
     <td ><center><b>Login</b></center></td> 
     <td><center><b>Email</b></center></td> 
     <td><center><b>Password</b></center></td> 
     <td><center><b>Name</b></center></td> 

    </tr> 
    @{ 
     Upload.Models.ClientModels client = null; 
     int j = 0; 
     while(j != -1) 
    { 
     try 
     { 
      client = Model[j]; 
      <tr> 
     <td width=10px> 
      @if (i == 0) 
      { 
     <input type="radio" 
     name="color" checked > 
      } 
      else 
      {<input type="radio" name="color" > 
      }  
    </td> 
    <td> 
     <a type="text" 
     name="color" >@client.Login</a> 
    </td> 

    <td> 
     <a type="text" 
     name="color" >@client.Mail</a> 
    </td> 
     <td> 
     <a type="text" 
     name="color" >@client.Password</a> 
    </td> 
     <td> 
     <a type="text" 
     name="color" >@client.Name</a> 
    </td> 
    </tr> 
      i++; 
      j++; 
     } 
     catch {j = -1;} 
    } 
     i = 0; 
    } 

</table> 

</form> 

</section> 

<section style="margin-top: 30px"> 

    <a type="button" style="width:120px;display:inline-block; height:20px;text-decoration:none;color:white;text-align:center;background-color:darkcyan;padding:5px;border-style:outset;border-width:2px;border-color:darkcyan;margin-left:150px" href="@Url.Action("Delete_client", "Admin")">Supprimer</a> 
    <a type="button" style="width:120px;display:inline-block; height:20px;text-decoration:none;color:white;text-align:center;background-color:darkcyan;padding:5px;border-style:outset;border-width:2px;border-color:darkcyan;" href="@Url.Action("Edit_client", "Admin",new { Id = 1 })">Editer</a> 
    <br /> <br /> 
    <a href="@Url.Action("Create","Client")" style="color:blue; margin-top : 30px;margin-left:150px">Créer un nouveau compte</a> 

    </section> 
    <br /> 
<section> 
<hgroup class="title"> 
    <h1 style="color:darkcyan">Liste des akeos</h1> 
</hgroup> 

<section > 

<form> 


<table style="margin-top: 50px;"> 
    <tr ><td ></td> 
     <td ><center><b>Login</b></center></td> 
     <td><center><b>Email</b></center></td> 
     <td><center><b>Password</b></center></td> 
     <td><center><b>Name</b></center></td> 

    </tr> 
    @{ 
     Upload.Models.AkeoModels akeo = null; 
     int k = 0; 
     while(k < Model.Count) 
    { 
     try 
     { 
      akeo = Model[k]; 

    <tr> 
     <td width=10px> 
      @if (i == 0){ 
     <input type="radio" 
     name="color" checked > 
      } 
      else{<input type="radio" name="color" > 
      }  
    </td> 
    <td> 
     <a type="text" 
     name="color" >@akeo.Login</a> 
    </td> 

    <td> 
     <a type="text" 
     name="color" >@akeo.Mail</a> 
    </td> 
     <td> 
     <a type="text" 
     name="color" >@akeo.Password</a> 
    </td> 
     <td> 
     <a type="text" 
     name="color" >@akeo.Name</a> 
    </td> 
    </tr> 
     i++; 
      k++; 
     } 
     catch {k++;} 
    } 
    } 
</table> 
</form> 

</section> 






<section style="margin-top: 30px"> 


    <a type="button" style="width:120px;display:inline-block; height:20px;text-decoration:none;color:white;text-align:center;background-color:darkcyan;padding:5px;border-style:outset;border-width:2px;border-color:darkcyan;margin-left:150px" href="@Url.Action("Delete_akeo", "Admin",new { Id = 1})">Supprimer</a> 
    <a type="button" style="width:120px;display:inline-block; height:20px;text-decoration:none;color:white;text-align:center;background-color:darkcyan;padding:5px;border-style:outset;border-width:2px;border-color:darkcyan;" href="@Url.Action("Edit_akeo", "Admin",new { Id = 1 })">Editer</a> 
    <br /> <br /> <br /> 
    <a href="@Url.Action("Create","Akeo")" style="color:blue; margin-top : 30px;margin-left:150px">Créer un nouveau compte</a> 

    </section> 

    </section> 

的問題是:未示出的列表中的值。在視圖索引中只顯示錶格下方的標籤和按鈕,但模型的內容不是。我正在調試程序並且模型不是空的,它包含兩個元素。

  1. 視圖中的錯誤在哪裏?
  2. 我該如何解決?

回答

4

您不應該使用ArrayList。您應該創建一個包含來自兩個模型的屬性的自定義類型。

例如:

public class CustomModel 
{ 
    public int PropertyOne { get; set; } 
    public string PropertyTwo { get; set; } 
} 

或者你也可以有:

public class CustomModel2 
{ 
    public List<Models.ClientModels> ClientModels { get; set; } 
    public List<Models.Akeo_List> AkeoModels { get; set; } 
} 

控制器:

public ActionResult Index() 
{ 
    var model = new List<CustomModel>(); 
    model.Add(new CustomModel() { }); 
    return View(model); 
} 

查看

@Model List<CustomModel> 

foreach(var cm in @Model) { 
    cm.PropertyOne 
} 

如果您正在使用CustomModel2你可以做遍歷所有的客戶端:

foreach (var client in @Model.ClientModels) { 
     @client.ClientName 
    } 
0

你正在做的MVC有些奇怪的M和V位中有你嘗試使用@Html。 EditorFor()?至於你在使用你的代碼時遇到了什麼。

您還沒有包括在視圖的頂部

@model decleration。

編輯:對不起,我剛剛重新讀你的代碼,這一點是不正確的。


您將客戶端設置爲null,然後通過它循環。

Upload.Models.ClientModels client = null;


ID推薦閱讀一些Darins後https://stackoverflow.com/users/29407/darin-dimitrov他擁有約模型和視圖建設優秀的MVC帖子