2013-07-31 105 views
4

我有一個C#MVC4項目這個類:MVC4 AllowHtml不解釋工作<字符串,字符串>

public class SaveModel 
{ 
    .... 

    [AllowHtml] 
    public string BodyHtml { get; set; } 
    [AllowHtml] 
    public Dictionary<string, string> AdditionalTemplate { get; set; } 
} 

一個控制器的動作看起來像這樣

public ActionResult SaveTemplate(SaveModel model) 
{ 
    .... 
} 

的BodyHtml工作正常,但由於某種原因AllowHtml不會對字典工作,我得到這樣的錯誤:

A potentially dangerous Request.Form value was detected from 
the client (additionalTemplate[0].value="<tr>..." 

有沒有什麼辦法可以解決它,除了通過在我的操作中放置[ValidateInput(false)]來禁用整個請求的驗證?

[ValidateInput(false)] 
public ActionResult SaveTemplate(SaveModel model) 
{ 
    .... 
} 
+0

你沒有顯示你的觀點是什麼樣子,但你可以使用'@ Html.Raw'。這似乎不值得發佈爲*答案*,但它阻止了視圖HTML編碼你的字符串。 – James

+0

我也有這個問題,還沒有找到解決方法。 – vkapadia

回答

1

由於快速的解決方法,你可以創建自己的類型的鍵值集合,其中將兩個屬性。 Value屬性可以標記爲AllowHtml像:

public List<MyCustomItem> AdditionalTemplate { get; set; } 

布拉布拉

class MyCustomItem 
    { 
     public string Key { get; set; } 
     [AllowHtml] 
     public string Value { get; set; } 
    } 
相關問題