2013-05-21 59 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帖子