我的项目中有这个模型:
public class ListOfProducts
{
public List<string> ProductNames { get; set; }
public List<string> ProductUrls { get; set; }
}
我将其传递给我的观点是:
public ActionResult Index()
{
var listOfUrls = GetListOfHrefs(); //Methods for giving values
var listOfProductNames = GetListOfProductNames();//Methods for giving values
var model = new ListOfProducts {ProductUrls = listOfUrls, ProductNames = listOfProductNames, ProductGtin = listofGti};
return View(model);
}
我想将我的模型作为列表传递给视图,以便按照我想要的方式循环播放...我可以在传递之前将模型转换为列表吗?
尝试model.Tolist(
)但智能感知无法找到Tolist-Part
编辑:
我真的需要在同一个上下文中访问这两个属性。在这种情况下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>
答案 0 :(得分:1)
您目前无法将ListOfProducts
转换为列表,因为它与列表无关。它是您在代码中定义的新类型。
如果你想让它成为一个列表,你应该继承IEnumerable
例如ICollection并实现所需的功能。
实际上,要实施IEnumerable
,您需要ListOfProducts
中包含所有List<String>
的属性,以便您可以对其进行迭代!
答案 1 :(得分:1)
如果我假设ProductNames列表中的每个条目都与ProductUrls中的一个条目匹配,那么您真正追求的是产品列表,并且设计缺少“产品”类。
创建一个类:
public class Product
{
public string Name {get;set;}
public string Url {get; set;}
}
现在将您的'ListOfProducts'替换为:
List<Product>()
现在您有了产品清单。您的类ListOfProducts不是必需的。
答案 2 :(得分:1)
它同样要问&#34;我想发送MyClass作为列表...&#34;,这是一个基本的OOB(面向对象编程)概念问题IMO..so发送List {MyClass},你发送一个包含2个列表的对象名称ListOfProducts,是指List {ListOfProducts}?您可以根据需要将任何模型,任何参数附加到视图中,根据需要修改它(任何模型/ ViewBag.Something),您就是游戏标尺
return View(new List<ListOfProducts >{model});
答案 3 :(得分:1)
ListOfProducts
是一个具有列表属性的对象。
我认为你想要的是
@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>
}
但这仅在ProductNames
和ProductUrls
包含完全相同数量的元素时才有效,在这种情况下,您可能需要重新考虑您的模型
public class Product
{
public string Name {get; set;}
public string Url {get; set;}
}
然后在你的索引&#39;中创建一个List<Product>
。动作方法并将其传递给视图