2012-10-15 18 views

回答

1

您可以使用屬性:

[ValidateInput(false)] 
public ActionResult Index(string InputText) 
{ 
    return View(); 
} 

另外,也要看看這篇文章:Understanding Request Validation in ASP.NET MVC 3

+0

所以默認情況下它已經驗證輸入,有沒有web.config改變?如果你不想驗證輸入,那麼你可以使用你上面寫的東西? – anthonypliu

+0

@anthonypliu默認情況下啓用驗證,如果您發佈例如'html',您將得到異常'從客戶端檢測到潛在危險的Request.Form值 – webdeveloper

0

使用[Authorize]過濾器你限制特定行動接入/控制器選擇用戶和角色。

請求驗證基本上聲明,提交的值在行動中不是潛在有害的html字符串(將它們解碼回頁面可能是危險的)。您可以使用配置文件通過屬性validateRequest =「true/false」控制全局級別的請求驗證。您可以使用動作過濾器([ValidateInput(true/false)])重寫配置文件設置(還有其他一些選項)。

當然,您可以將這兩件事聯繫起來,它們都是某種類型的驗證和安全機制。儘管如此,它們都是非常不同的驗證類型,你應該將它們看作是相當獨立的東西。回想一下你的問題,你應該在web.config中放置validateRequest =「true」(因此無論machine.config設置如何,你都會有請求驗證)。