如何将其重写为MVC Razor 3?

时间:2012-12-24 00:08:26

标签: asp.net-mvc razor syntax

它是一个简单的片段,但在我的mvc razor视图中无法识别.replace: 我用 @ 替换了<%=%> ,不知道还需要什么?

 <%=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"))%>

1 个答案:

答案 0 :(得分:0)

我不确定这是否理想,但你可以得到你所追求的:

  1. 插入.ToHtmlString()(即将MvcHtmlString转换为原始HTML字符串,以便您可以在其上调用Replace
  2. Html.Raw()中包装整个内容(以便在呈现之前不会对HTML进行编码)

  3. @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")
       )
    )