【问题标题】:ValidateRequest = false in MVC 2.0 .netMVC 2.0 .net 中的 ValidateRequest = false
【发布时间】:2011-05-21 21:05:09
【问题描述】:
我想在 ASP.NET MVC 2.0 的特定视图上禁用 RequestValidation。所以我添加了一些必要的查看页面指令部分如下:
<%@ Page ValidateRequest="false" Language="C#" MasterPageFile="Path" Inherits="System.Web.Mvc.ViewPage<Path>" %>
但还是不行。
甚至尝试在 Web.Config 中添加这个:
<httpRuntime requestValidationMode="2.0" />
【问题讨论】:
标签:
.net
asp.net-mvc
model-view-controller
【解决方案1】:
您是否还在操作中添加了[ValidateInput(false)] 属性?
【解决方案2】:
我使用了这种方法,因为这是我发现它起作用的唯一方法。
我用有效字符替换了无效字符。
例如)strUrl = strUrl.Replace("&", "-")
【解决方案3】:
为什么不为您回发的对象创建一个视图模型。
您可以使用正则表达式来防止非法字符,例如
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace Web.Models.ViewModels
{
public class Account
{
public Guid Id { get; set; }
[Required(ErrorMessage = "You have to enter this")]
[StringLength(100, ErrorMessage = "Too much text")]
[RegularExpression(@"^([a-zA-Z0-9_\-\.\s]+)", ErrorMessage = "Not allowed")]
public string Firstname { get; set;
}
}