C# 在将模型传递到视图之前将其转换为列表

C# 在将模型传递到视图之前将其转换为列表,c#,list,C#,List,我在我的项目中得到了这个模型: public class ListOfProducts { public List<string> ProductNames { get; set; } public List<string> ProductUrls { get; set; } } 我想将我的模型作为列表传递给视图,以便以我想要的方式循环…在传递模型之前,我可以将模型转换为列表吗 已尝试model.Tolis

我在我的项目中得到了这个模型:

public class ListOfProducts
    {
        public List<string> ProductNames { get; set; }       
        public List<string> ProductUrls { get; set; }

    }
我想将我的模型作为列表传递给视图,以便以我想要的方式循环…在传递模型之前,我可以将模型转换为列表吗

已尝试
model.Tolist(
),但intellisense找不到
Tolist部分

编辑:

我确实需要在同一上下文中访问这两个属性。在本例中,
Artice

 <article id="post-62" class="post-62 x-portfolio type-x-portfolio status-publish has-post-thumbnail hentry has-post-thumbnail x-portfolio-5e9a5c5e0b6c2e1342bfccc9cacb084f x-portfolio-3ce959340d6fed7ed4f041884b46387c">

                <div class="entry-wrap cf">
                    <header class="entry-header">
                        <h2 class="entry-title entry-title-portfolio">
                           <p>@product</p>
                        </h2>
                    </header>
                </div>
                <p>@url</p>
                <span class="visually-hidden"><span class="author vcard"><span class="fn">addiadmin</span></span><span class="entry-title">Gluten &#038; Mjölkfri Raggmunk</span><time class="entry-date updated" datetime="2014-05-21T08:23:32+00:00">05.21.2014</time></span>



            </article>

@产品

@网址

添加谷蛋白和#038;Mjölkfri Raggmunk05.21.2014
您当前无法将产品列表转换为列表,因为它与列表无关。它是您在代码中定义的新类型

如果希望它是一个列表,则应该继承
IEnumerable
或ICollection,并实现所需的函数


实际上,要实现
IEnumerable
,您需要在
ListOfProducts
中有一个属性,该属性将包含所有
列表
,以便您可以对其进行迭代

如果我假设列表ProductNames中的每个条目都与ProductUrls中的一个条目相匹配,那么您真正想要的是一个产品列表,而设计缺少“Product”类

创建一个类,如:

public class Product
{
  public string Name {get;set;}
  public string Url {get; set;}
}
现在将您的“产品列表”替换为:

List<Product>()
List()
现在您有了产品列表。你的类产品列表不是必需的。

问“我想以列表的形式发送我的类…”也是一样的,这是一个基本的OOB(面向对象编程)概念问题。所以发送列表{MyClass},你发送的是一个包含两个列表的对象名产品列表,你是说列表{ListOfProducts}?您可以根据需要将任何模型、任何参数附加到视图中,根据您的需要修改它(任何模型/ViewBag.Something),您就是游戏的统治者

 return View(new List<ListOfProducts >{model});
返回视图(新列表{model});

产品列表
是一个具有列表属性的对象

我想你想要的是

@model ListOfProducts

foreach (var item in Model.ProductNames)
{
  ....

foreach (var item in Model.ProductUrls )
{
  ....
编辑:根据您的评论,您可以这样做(但请参见末尾的评论)


然后在“索引”操作方法中创建一个
列表
,并将其传递给视图

ProductURL和ProductNames之间的关系是什么?您希望传递给视图类的列表是什么?我想将产品类列表转换为列表。等待1分钟,我将显示我的视图。ProductNames中的每个条目是否与ProductUrls中的一个条目匹配?是的,Rob,它们匹配。请为视图编辑您完全正确!这就是我想要的。对不起大家不清楚我想要什么,希望这能帮助别人!您是否基于
ProductNames
ProductUrls
创建html元素?如果是这样,最好使用
for(int i=0;…)
循环,以便为回发创建正确的名称。看到我的答案了吗?你的意思是我可以把你上面的answe中的两个循环“组合”成1个for循环吗?这会有很大帮助,因为我真的很想在同一篇“文章”中显示这两个属性。我指的是为回发创建输入(我不确定这是否是回发表单),但是如果您知道两个列表的长度完全相同,那么use可以使用单个循环
(int i=0;i
并对
Model.ProductNames[i]
Model.ProductUrls[i]
执行操作如果您有时间,请查看我的编辑,我在同一篇文章中尝试访问这两个属性,是否可能访问sam循环中的两个属性?
@model ListOfProducts

foreach (var item in Model.ProductNames)
{
  ....

foreach (var item in Model.ProductUrls )
{
  ....
@for (int i = 0; i < Model.ProductNames.Count; i++)
{
  <article id="post-62"...
    <div class="entry-...
      <header class="entry...
        <h2 class="entry-title...
          <p>Model.ProductNames[i]</p>
        </h2>
      </header>  
    </div>
    <p>Model.ProductUrls[i]</p>
    ....
  </article>
}
public class Product
{
  public string Name {get; set;}
  public string Url {get; set;}
}