2010-01-20 165 views
0

我想知道是否可以在代碼塊中的View中呈現Html Helper。因此,而不是:MVC Html Helper渲染

<% = Html.TextBox("sometextbox", "somethingelse") %> 

我想做的事:

<% 
switch(SomeParameter) 
{ 
    case "blah": 
     Html.TextBox("sometextbox", "somethingelse") 
    break; 
} 
%> 

而且有這樣的渲染。當然,它不會呈現,所以有沒有一種方法可以通過編程來決定是否可以添加文本框,而無需在頁面中有一百萬個分隔符來完成此操作?

在此先感謝!

+0

您是否應該在您的視圖中放置這樣的邏輯? – brian 2010-01-20 23:19:59

+0

我還在玩弄設計。在某種程度上,它必須結束他的觀點,Html元素在他的情況下是從數據庫表中驅動的,所以我不確定它可以繼續到哪裏並且仍然以他的觀點結束。根據表中的內容,我可能會有1到10個參數以編程方式添加。 – sethxian 2010-01-20 23:51:18

回答

1
<% 
    switch(SomeParameter) 
    { 
     case "blah": 
      %><%=Html.TextBox("sometextbox", "somethingelse")%><% 
      break; 
    } 
%> 

<%= %>僅僅是Response.Write()速記符號,雖然所以下面應該工作了。

<% 
    switch(SomeParameter) 
    { 
     case "blah": 
      Response.Write(Html.TextBox("sometextbox", "somethingelse")); 
      break; 
    } 
%> 

所有的HtmlHelpers返回一個字符串,並不直接輸出到設計的響應流。

+0

謝謝,這就是我所需要的,我不知道爲什麼我沒有想到,因爲那是經典模型的一部分。 – sethxian 2010-01-20 23:27:22

0

這是你要找的嗎?

<% switch (SomeParameter) 
     { 
      case "blah": %> 
    <%= Html.TextBox("sometextbox", "somethingelse") %> 
    <% break; 
     } %> 
+0

關閉,我試圖避免每次休息都要分開我的分隔符。感謝您的答覆! – sethxian 2010-01-20 23:28:18

+0

對不起,我簡單不知道爲什麼我沒有給出上述解決方案:D – 2010-01-20 23:50:32

+0

可能出於同樣的原因,我沒有想到它,有時我們不處理我們知道的嘿嘿:)感謝您的時間。 – sethxian 2010-01-20 23:58:54