2012-12-04 74 views
1

我使用google代碼創建了一個局部視圖,我想向該視圖發送兩個參數。 下面是局部視圖內容:在mvc4 partial view中傳遞參數

<!-- Google Code for apply Conversion Page --> <script type="text/javascript"> 
    /* <![CDATA[ */ 
    var google_conversion_id = 1234567; 
    var google_conversion_language = "en"; 
    var google_conversion_format = "2"; 
    var google_conversion_color = "ffffff"; 
    var google_conversion_label = "7df7df7sdfdf"; var google_conversion_value = 0; 
    /* ]]> */ 
    </script> 
    <script type="text/javascript" 
    src="https://www.googleadservices.com/pagead/conversion.js"> 
    </script> 
    <noscript> 
    <div style="display:inline;"> 
    <img height="1" width="1" style="border-style:none;" alt="" 
    src="https://www.googleadservices.com/pagead/conversion/1234567/?value=0&amp;label=7df7df7sdfdf&amp;guid=ON&amp;script=0"/> 
    </div> 
    </noscript> 

現在,而不是爲google_conversion_id和google_conversion_label,我想用我會從主形式發送兩個參數的靜態值。

這裏是我稱之爲局部視圖:

@ {Html.RenderPartial( 「谷歌」); }

任何想法我怎麼能做到這一點? Thx,Laziale

回答

1

您可以使用RenderAction而不是RenderPartial。然後,您可以在控制器中編寫自己的操作,並可以添加參數。例如:

@{ Html.RenderAction("Action", "Controller", new { id = "Something", label = "Label" }); } 

或者您在後面的代碼中爲局部視圖創建新模型。

另一種選擇是將參數存儲在ViewBag中,但這更像是一種黑客攻擊。

+0

我是否還需要包含控制器?這是強制性的嗎?因爲在這一刻我只有局部的看法。謝謝@slfan – Laziale

+1

如果你使用RenderAction,你需要一個控制器。但是你可以重用現有的控制器,併爲你的局部視圖編寫一個新的動作。如果你不想要控制器,你仍然可以將參數存儲在ViewBag中。順便說一句:如果你使用RenderPartial,你可以把大括號離開。只需@ Html.RenderPartial – slfan