4

我有一个应用程序 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

2 回答 2

7

你不应该使用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
   }
于 2013-05-21T09:01:21.370 回答
0

您正在做 MVC 的 M 和 V 位有点奇怪您是否尝试过使用 @Html.EditorFor()?至于您对代码的体验。

你没有包括一个

视图顶部的@model 声明。

编辑:对不起,我刚刚重新阅读了您的代码,这一点不正确。


您将 client 设置为 null 然后循环遍历它。

Upload.Models.ClientModels 客户端 = null;


id 推荐阅读 Darins 的一些帖子https://stackoverflow.com/users/29407/darin-dimitrov他有关于模型和视图构造的优秀 MVC 帖子

于 2013-05-21T09:01:23.237 回答