2015-09-18 86 views
1

我被卡在了22上。我有一個問題,這兩個屬性不能一起工作。如果我從控制器操作中刪除[CaptchaVerify]屬性,我的屬性上的[AllowHtml]屬性將起作用。如何使[AllowHtml]和[CaptchaVerify]一起工作?

我得到

從 客戶

異常被檢測到有潛在危險的Request.Form值。

我該如何解決這個問題?


這裏是我的屬性,應該允許HTML:

[AllowHtml] 
[Required(ErrorMessage = "Please enter a comment.")] 
public string CommentText 
{ 
    get; set; 
} 

我的視圖看起來像這樣(我截斷它這個例子):

@using CaptchaMvc.HtmlHelpers 

@using (Html.BeginForm("Article", "Home", FormMethod.Post)) 
{ 
    @Html.TextBoxFor(m => m.CommentText, new { @class = "form-control" }) 
    @Html.Captcha("Refresh", "Enter the phrase shown above", 4, "Captcha image is required.", false) 
    <input type="submit" value="Post" /> 
} 

我的控制器看起來像這個:

[HttpPost] 
[CaptchaMvc.Attributes.CaptchaVerify("Captcha is not valid")] 
public async Task<ActionResult> Article(ArticleModel model) 
{ 
    // Check the captcha. 
    if (ModelState["CaptchaInputText"] != null && ModelState["CaptchaInputText"].Errors.Count > 0) 
    { 
     ViewBag.CaptchaError = "Please fill in the text above"; 
    } 

    // Rest of my action 
} 

回答

1

我下載了源代碼,並找到了解決辦法。

不幸的是,他們需要做出改變他們的源代碼 https://captchamvc.codeplex.com/workitem/11

您也可以下載源代碼,並做出改變你的自我上面的鏈接,或等待,然後更新的源代碼。

+0

非常好。完美的作品!謝謝! – Noobie3001

0

我仍然在做一些研究,但現在我發現這個解決方案,改變web配置:

https://stackoverflow.com/a/17258129/3202657

這樣做的改變,將禁止所有形式的請求驗證,所以我強烈不推薦

我嘗試添加globalfilter太多,但它沒有工作:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
    filters.Add(new ValidateInputAttribute(false)); 
    } 

這個庫是一個開源的,請嘗試下載與調試代碼