0

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

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

1 回答 1

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")
   )
)
于 2012-12-24T01:15:28.640 回答