0

これは単純なスニペットですが、mvc カミソリ ビューで .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"))%>
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 に答える