2012-12-24 50 views
0

它是一種簡單的片斷,但.replace沒有被認識到我的MVC Razor視圖: 我換成=%>與@,不知道需要<%還有什麼?如何將其重寫到MVC Razor 3?

<%=Ajax.ActionLink("[replacethis]", 
     "ToggleEnabled", 
       new { id = Model.ID }, 
       new AjaxOptions { UpdateTargetId = "toggleimage" + Model.ID }).Replace("[replacethis]", 
       string.Format("<div id='toggleimage{0}'><img src='/Content/icons/{1}' border='0' alt='toggle'/></div>", 
       Model.ID, Model.Enabled ? "tick.png" : "tick_grey.png"))%> 

回答

0

我不知道這是否是理想的,但你可以得到你的以後有什麼:

  1. 插入.ToHtmlString()(即MvcHtmlString轉換成原始的HTML字符串,以便您可以調用Replace就可以了)
  2. 結束語在整個事件中Html.Raw()(所以它不會渲染HTML編碼之前)

@Html.Raw(
    Ajax.ActionLink("[replacethis]", 
     "ToggleEnabled", 
     new { id = Model.ID }, 
     new AjaxOptions { UpdateTargetId = "toggleimage" + Model.ID }) 
    .ToHtmlString() 
    .Replace("[replacethis]", 
     string.Format("<div id='toggleimage{0}'><img src='/Content/icons/{1}' border='0' alt='toggle'/></div>", 
      Model.ID, Model.Enabled ? "tick.png" : "tick_grey.png") 
    ) 
) 
+0

謝謝你的幫助,快樂的NYE! – Chaka