2011-11-26 64 views
2

我已經在MVC 3視圖我怎樣才能得到這個局部視圖來正確渲染?

<% foreach (var stockItem in Model.Shop.Stock) { %> 
     <div class="shopItem"> 
      <div class="shopItemLeft"> 
       <% Html.RenderPartial("ItemImageDisplay", stockItem.Item); %> 
      </div> 
      <div class="shopItemRight"> 
       <strong><%= stockItem.Item.ToString() %></strong><br /> 
       <%= stockItem.Item.CalculatePrice() %><br /> 
       <%= stockItem.Quantity %> in stock<br /> 
       <%= Html.ActionLink("Buy", "BuyShopItem", new { shopId = Model.Shop.Id, itemId = stockItem.Item.Id }, null) %> 
      </div> 
     </div> 
    <% } %> 

當此呈現下面的代碼中,「ItemImageDisplay」局部視圖不是div標籤,我已經把它放在裏面,它代替呈現爲如果我放:

<% foreach (var stockItem in Model.Shop.Stock) { %> 
       <% Html.RenderPartial("ItemImageDisplay", stockItem.Item); %> 
    <% } %> 

    <% foreach (var stockItem in Model.Shop.Stock) { %> 
     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong><%= stockItem.Item.ToString() %></strong><br /> 
       <%= stockItem.Item.CalculatePrice() %><br /> 
       <%= stockItem.Quantity %> in stock<br /> 
       <%= Html.ActionLink("Buy", "BuyShopItem", new { shopId = Model.Shop.Id, itemId = stockItem.Item.Id }, null) %> 
      </div> 
     </div> 
    <% } %> 

局部視圖的HTML如下:

<%= Html.Image("~/Content/Images/Items/" + Model.Id + ".png", Model.ToString(), new { onmouseover = "tooltip('item:" + Model.Id + "');", onmousemove = "tooltip('item:" + Model.Id + "');", onmouseout = "tooltipRem();" }) %> 

可以請你幫我明白這是爲什麼渲染,因爲它是,我能做些什麼來阻止這種情況發生?

編輯:這裏是渲染輸出本節:

<img alt="Can of Pineapples" onmousemove="tooltip(&#39;item:1152&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:1152&#39;);" src="/Content/Images/Items/1152.png" title="Can of Pineapples" /><img alt="Kraken Treats" onmousemove="tooltip(&#39;item:1104&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:1104&#39;);" src="/Content/Images/Items/1104.png" title="Kraken Treats" /><img alt="Orange Jelly" onmousemove="tooltip(&#39;item:1279&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:1279&#39;);" src="/Content/Images/Items/1279.png" title="Orange Jelly" /><img alt="Peanuts" onmousemove="tooltip(&#39;item:509&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:509&#39;);" src="/Content/Images/Items/509.png" title="Peanuts" /><img alt="Fourth Year Anaversary Cake" onmousemove="tooltip(&#39;item:859&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:859&#39;);" src="/Content/Images/Items/859.png" title="Fourth Year Anaversary Cake" /><img alt="Taco" onmousemove="tooltip(&#39;item:486&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:486&#39;);" src="/Content/Images/Items/486.png" title="Taco" /><img alt="Can of Blueberries" onmousemove="tooltip(&#39;item:1154&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:1154&#39;);" src="/Content/Images/Items/1154.png" title="Can of Blueberries" /><img alt="Strawberry Jam" onmousemove="tooltip(&#39;item:639&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:639&#39;);" src="/Content/Images/Items/639.png" title="Strawberry Jam" /><img alt="Crisps" onmousemove="tooltip(&#39;item:726&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:726&#39;);" src="/Content/Images/Items/726.png" title="Crisps" /><img alt="Cooked Shrimp" onmousemove="tooltip(&#39;item:521&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:521&#39;);" src="/Content/Images/Items/521.png" title="Cooked Shrimp" /><img alt="Fishy Finger" onmousemove="tooltip(&#39;item:629&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:629&#39;);" src="/Content/Images/Items/629.png" title="Fishy Finger" /><img alt="Can of Peaches" onmousemove="tooltip(&#39;item:1151&#39;);" onmouseout="tooltipRem();" onmouseover="tooltip(&#39;item:1151&#39;);" src="/Content/Images/Items/1151.png" title="Can of Peaches" /> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Can of Pineapples</strong><br /> 
       940<br /> 
       10 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=1152">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Kraken Treats</strong><br /> 
       934<br /> 
       7 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=1104">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Orange Jelly</strong><br /> 
       827<br /> 
       9 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=1279">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Peanuts</strong><br /> 
       116<br /> 
       8 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=509">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Fourth Year Anaversary Cake</strong><br /> 
       1794<br /> 
       7 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=859">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Taco</strong><br /> 
       950<br /> 
       7 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=486">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Can of Blueberries</strong><br /> 
       317<br /> 
       8 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=1154">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Strawberry Jam</strong><br /> 
       1032<br /> 
       10 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=639">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Crisps</strong><br /> 
       179<br /> 
       10 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=726">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Cooked Shrimp</strong><br /> 
       663<br /> 
       11 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=521">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Fishy Finger</strong><br /> 
       974<br /> 
       10 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=629">Buy</a> 
      </div> 
     </div> 

     <div class="shopItem"> 
      <div class="shopItemLeft"> 

      </div> 
      <div class="shopItemRight"> 
       <strong>Can of Peaches</strong><br /> 
       786<br /> 
       7 in stock<br /> 
       <a href="/Market/BuyShopItem?shopId=1&amp;itemId=1151">Buy</a> 
      </div> 
     </div> 
+0

你可以從渲染的視圖/部分視圖添加html輸出嗎? – glosrob

+0

對不起,應該想到補充一點。我編輯了這個問題 –

+0

這是頁面或頁面的實際源代碼,如螢火蟲或ie開發人員工具一樣使用dom瀏覽器進行檢查。 Javascript可以改變dom而不是頁面源代碼。根據我所知,Ther對你所發佈的代碼沒有任何不妥,它應該按照你的預期輸出。 –

回答

2

嗯,我懷疑這是因爲你使用Html.RederPartial而不是Html.Partial。後者返回一個字符串,而前者直接寫入響應流。我有一種鬼鬼祟祟的感覺,MVC正在執行整個foreach循環,然後在最後寫回響應來解釋你的結果。

+0

謝謝,那工作 –

相關問題