2009-09-29 61 views
0

我有ASP.NET MVC應用程序與應該處理張貼的XML數據的操作。在Cassini正在處理一切正常,但是當我將應用程序部署到IIS6時,出現以下錯誤。如何禁用IIS6中運行的ASP.NET MVC中的請求驗證?

A potentially dangerous Request.Form value was detected from the client (xml="<?xml version="1.0" ..."). 

我試着用ValidateInput(false)屬性裝飾控制器,我也向控制器添加以下方法。

protected override void Initialize(RequestContext requestContext) 
{ 
    ValidateRequest = false; 
    base.Initialize(requestContext); 
} 

沒有幫助。

你有什麼其他的想法我該如何擺脫這個煩人的請求驗證?

編輯:對不起。像往常一樣,我完全是我的錯誤。我設置通配符映射後,一切工作正常。

回答

2

它是(ValidateInput)在POST方法?它只適用於POST。

+0

是這是觸發此問題的發佈請求。我還嘗試將AcceptVerbs(HttpVerbs.Post)和ValidateInput(false)添加到特定的方法,但它似乎已在IIS6中生效。 – 2009-09-29 14:27:43

+0

奇怪 - 這應該工作。你確定發佈該行動,而不是一個不同的? – RichardOD 2009-09-29 14:36:02

2

正如理查德說,你應該把它放在action方法接受輸入:

[HttpPost] 
[ValidateInput (false)] 
public ActionResult DoTheThing (StuffBeingPostedBack stuff) 
{ 
    // ... 
} 
1

認沽[ValidateInput(假)]在您的控制器的方法後您的ActionResult以上....