2014-05-25 55 views
0

我得到這個模型在我的項目之前,列出轉換模型,通過它來查看

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

編輯:

我真的需要這種情況下接取在同一context..In這兩個屬性的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> 
+0

什麼是ProductUrls和ProductNames之間的關係? –

+0

您想將哪個列表傳遞給View類? –

+0

我想將ListOfProducts類轉換爲列表。等待1分鐘,我會展示我的觀點。 – user2915962

回答

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

但這只是會如果ProductNamesProductUrls都包含完全相同數量的元素,則在此情況下工作,或許您應該重新考慮您的模型

public class Product 
{ 
    public string Name {get; set;} 
    public string Url {get; set;} 
} 

然後創建你'指數」的行動方法List<Product>並傳遞給視圖

+0

你是絕對正確的!這是我想要的。 對不起,我不清楚自己想要什麼,希望這可以幫助別人! – user2915962

+1

您是基於'ProductNames'和'ProductUrls'創建html元素嗎?如果是這樣的話,最好使用'for(int i = 0; ...)'循環,以便爲回發創建正確的名稱。看到我的答案[這個問題](http://stackoverflow.com/questions/23841504/how-do-i-model-bind-a-list-of-listselectitem-using-mvc-net/23842106#23842106) –

+0

你的意思是說我有可能將上面的答案中的兩個循環合併爲一個for循環?這將有助於很多,因爲我真的想在同一個「文章」中取代這兩個屬性。 – user2915962

1

您目前無法將ListOfProducts轉換爲列表,因爲它與列表無關。這是您在代碼中定義的新類型。

如果你想要它是一個列表,你應該繼承IEnumerable例如ICollection並實現所需的功能。

實際上,要實現IEnumerable,您需要ListOfProducts中的一個屬性,它將包含您所有的List<String>,以便您可以對其進行迭代!

1

如果我假設ProductNames列表中的每個條目與ProductUrls中的一個條目匹配,那麼您真正要做的是產品列表,並且設計缺少'Product'類。

創建一個類,如:

public class Product 
{ 
    public string Name {get;set;} 
    public string Url {get; set;} 
} 

現在有了替代你的 'ListOfProducts':

List<Product>() 

現在你有一個產品列表。您的班級ListOfProducts不是必需的。

1

它同樣要問「我想發送MyClass作爲列表...」,這是一個基本的OOB(面向對象編程)概念問題IMO..so發送列表{MyClass},您發送一個對象名稱包含2個列表的ListOfProducts,你的意思是List {ListOfProducts}?你可以將任何型號,任何參數來查看你想他們,它(任何型號/ViewBag.Something)修改您的需求,請你,你是遊戲中的統治者

return View(new List<ListOfProducts >{model});