C# 如何使用razor在html中迭代列表变量

C# 如何使用razor在html中迭代列表变量,c#,asp.net,html,asp.net-mvc-4,razor,C#,Asp.net,Html,Asp.net Mvc 4,Razor,我不熟悉asp.net和MVC。我有一个名为Jumbo()的服务方法。此方法返回一个包含名字、姓氏和联系人号码的列表。我从我的主要项目中调用这个方法,如下所示。我还将其返回到查看页面 var info = add.jumbo(); ViewData["sample"] = info; return View("FormResults"); 当我调试代码时,变量'info'包含我需要的所有数据。问题是如何使用razor迭代html表中的变量。我找了很多东西想找到解决办法,但失败了。请帮我找个解

我不熟悉asp.net和MVC。我有一个名为Jumbo()的服务方法。此方法返回一个包含名字、姓氏和联系人号码的列表。我从我的主要项目中调用这个方法,如下所示。我还将其返回到查看页面

var info = add.jumbo();
ViewData["sample"] = info;

return View("FormResults");

当我调试代码时,变量'info'包含我需要的所有数据。问题是如何使用razor迭代html表中的变量。我找了很多东西想找到解决办法,但失败了。请帮我找个解决办法。提前感谢。

首先,您需要将模型传递到视图:

return View("FormResults", info);
在视图中,您需要说明模型的类型,并使用@表示代码而不是html:

@model List<Foo> // Whatever your list is
@foreach (var item in Model)
{
    <span>@item.Text</span>
}
@model List//无论您的列表是什么
@foreach(模型中的var项目)
{
@项目.案文
}

这里有一个关于它的详细博客:

在您的视图中编写一个foreach循环,如下所示

@model List<Object>
@foreach(var item in Model)
{
  item.YourProperty;//without html
  <label>@item.YourProperty</label> //in html
}
@型号列表
@foreach(模型中的var项目)
{
item.YourProperty;//不带html
@html中的item.YourProperty//
}
案例1: 基本上,您可以在应用程序本身中观察到这一点。MVC本身为您提供了答案。什么时候针对返回列表的操作创建视图时。说出您的操作返回客户列表,然后您可以观察以下代码

@model IEnumerable<Customer>

<h2>Customers</h2>
<p>
    @Html.ActionLink("Create New", "CreateCustomer", "ControllerName")
</p>
<table>
    <tr>

        <th>
            @Html.DisplayNameFor(model => model.Email)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {    
        <tr>           
            <td>
                @Html.DisplayFor(modelItem => item.Email)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>

                <td>                        

                    @Html.ActionLink("Edit |", "UpdateCustomer", new { id =  item.Id}) 
                    @Html.ActionLink("Details", "Details", new { id =  item.Id}) 
                    @Html.ActionLink("Delete", "Delete", new { id =  item.Id})                      
               </td>           
        </tr>
    }
</table>
视图:

@if(ViewData[“sample”!=null)
{
列表信息列表=(列表)视图数据[“示例”];
foreach(信息列表中的变量i)
{ 
//使用html标记在此处执行html。
}        
}
@model Models.Nodes
@foreach(模型中的var项目)
{
  • item.name
  • }
    我不使用模型。我从控制器调用服务并将其存储在变量中。我还将数据传递给视图。我有一个单独的服务项目。事实上,我不确定我是否做对了。请帮助我考虑一下,我在project1中有我的服务方法Jumbo(),我从project2调用了该方法。我在project1中有一个名为UserTable的列表。我从db中检索数据并将其存储在该列表中(project1)。从project2中,我jsut调用该方法并将其存储到变量中。如何将该列表包含到project2的视图中?请帮助我…@user3627446如果
    UserTable
    是类名,那么将
    Foo
    从这个答案更改为
    UserTable
    ,并将
    item.Text
    更改为正确的属性名,即
    item.FirstName
    。我尝试用List替换Foo,但显示错误“仅赋值、调用、递增、递减,wait和new对象表达式可以用作语句的
    return View("FormResults");
    
      @if (ViewData["sample"] != null)
        {
            List<Info> infoList = (List<Info>)ViewData["sample"];
            foreach (var i in infoList)
            { 
            //Perform your html here enclosed with html tags.
            }        
        }
    
    @model  Models.Nodes 
    @foreach (var item in Model)
    {
     <li>
        <span> item.name </span>
     </li>
    }