小编Ale*_*x42的帖子

ASP.NET MVC ValidateInput(false)停止使用xVal和[RegularExpression] DataAnnotation

我想通过正则表达式验证器截取表单字段中的"<"字符.我将分三个步骤描述问题:

第1步:当我尝试提交一个包含"<"字符的字段的表单时,我得到了"潜在危险请求..." - 正如ASP.NET中预期的那样.

第2步:为了避免ASP.NET的RequestValidation,我使用"[ValidateInput(false)]"在控制器中修饰我的Update方法.

它按预期工作 - 现在我可以毫无错误地发布"<"字符.

第3步:我将xVal与DataAnnotations一起使用.例如,[Required]或[StringLength(255)]按预期工作.

但是当我使用时:[RegularExpression("^ [^ <>]*$",ErrorMessage ="不允许使用特殊字符.")],我再次收到"潜在的dangeros请求..."错误,尽管[ValidateInput] (假)]指令.

发生了什么?有没有更简单的正则表达式验证方法,但是[ValidateInput(false)]到位了吗?当然,我想在模型中使用验证码,而不是在控制器中.

validation asp.net-mvc xval data-annotations

20
推荐指数
1
解决办法
2570
查看次数

ASP.NET MVC中的文件大小上载限制:web.config(s)中的maxRequestLength设置超过1

我想为maxRequestLength设置多个设置 - 文件大小上传限制(例如,一个用于文件/新建,另一个用于图片/新建).我的所有操作都采用其他参数(例如/ File/New?folderId = 234).

单个设置按预期工作:

<httpRuntime executionTimeout="60" maxRequestLength="1024" />
Run Code Online (Sandbox Code Playgroud)

我尝试在根web.config中有2个设置和2个位置部分,但没有任何成功.我不确定在"路径"中写什么 - 视图的物理aspx页面,或控制器+动作......但是,似乎没有任何工作.

<location path="/File/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="4096" />
    </system.web>
</location>
<location path="/Picture/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

我试图将另一个web.config放在一个特定的视图文件夹中(例如/ Views/Picture/...),就像它在经典的Webform ASP.NET中一样,但是这似乎没有做到这一点......

<location path="">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

无论我做什么,只应用httpRuntime.maxRequestLength的一个值 - 在(root)web.config ... system.web中.

asp.net-mvc file-upload web-config maxrequestlength

17
推荐指数
2
解决办法
2万
查看次数