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 & 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;}
}