目录
【问题描述】
当我们在开发过程中,有时候会遇到一些莫名其名的错误。
很多小伙伴看到这个问题,当时就蒙了。不知道该从哪里下手了!!!
【原因分析:】
一般这样的问题,就说明了开发人员在创建WebForm项目的时候选择的是空项目。如下图所示。
空项目创建好了后,里面非常的干净清爽。没有包含任何其他的依赖包。这也就导致了我们这种空项目中使用验证控件的时候报错。
因为应用程序中的验证控件需要依赖到jquery(现在的web应用程序哪个能离开jquery呢),而目前程序目录中并没有jquery文件,或者有jquery文件但是程序并不知道jquery文件存放的具体位置。因此,我们要做的就是让应用程序能够找到jquery源文件。
【解决方案】
方案1:
修改web.config文件中的配置,表示设置微软的验证框架模式none。也就是说它屏蔽了微软的ValidationSettings类库,底层需要jquery的支持。该配置是一个全局设置,它的配置信息会应用到所有的页面中。
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode"value="None" />
</appSettings>
……
</configuration>
方案2(推荐):
修改配置文件Global.asax。该方案也是全局的配置方案。具体操作如下图所示:
- 添加Global.asax
2. 引用命名空间usingSystem.Web.UI
3. 在类Global的Application_Start方法中添加如下代码:
protected void Application_Start(object sender, EventArgs e)
{
//向应用程序指定依赖的jquery库,所在的文件路径
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/scripts/jquery.min", });
}
4. 项目中添加对应的文件夹和文件
方案3:
在aspx页面的Page_Load方法中添加如下代码:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
}
方案4:
把文件AspNet.ScriptManager.jQuery.dll添加到项目的引用中。该方法可以消除错误,但是会导致验证控件不起作用。
AspNet.ScriptManager.jQuery.dll该文件我们可以先创建一个含有基本信息的webform项目,然后再该项目的bin文件夹中找到该文件,将其复制到自己的项目中并添加引用即可。