IIS7中Ajax.AjaxMethod无效的原因及解决方法
在ASP环境中使用Ajax.AjaxMethod时,一切在开发服务器下运行得相当顺利,然而一旦部署到IIS,JavaScript中的CS类似乎就消失了。对于像我这样遇到这种困扰的朋友,这里有一份详细的解决方案供参考。
如果你在使用IIS7来发布你的网站,你需要在web.config文件中添加特定的配置。在
```xml
```
我遇到的这个问题,其根源在于没有注意到IIS版本之间的差异。现在,我将我在解决这个问题过程中需要注意的事项整理如下:
1. Ajax.dll文件的获取与添加:如果项目中还没有ajax.dll文件,首先你需要下载一个。在VS的解决方案资源管理器中,右键点击项目名称,选择“添加项目引用”,然后浏览到找到的ajax.dll并确定添加。
2. 在web.config中的
3. 在CS程序中,你需要在Page_Load方法中使用Ajax.Utility.RegisterTypeForAjax来注册你的类。例如:
```csharp
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName)); // ClassName是你的CS文件的类名
}
```
4. 在编写CS方法时,需要在方法前添加[Ajax.AjaxMethod()]标签。如果你想在AjaxMethod中调用session,那么你需要将其设置为[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)]。例如:
```csharp
[Ajax.AjaxMethod()]
public string GetAddress(string UserID)
{
string Address="";
//做一些获取地址的操作
return Address;
}
```
注意这个方法需要是public的,否则在JS中调用时会提示“不支持此属性或方法”。
5. 确保你的页面中有
标签。这是因为在ASPX页面中,表单的runat属性为server时,才能确保服务器端能够正确接收到客户端提交的数据。6. 在ASPX的JavaScript中进行调用时,需要加上类名。例如:`var address = ClassName.GetAddress('123').value;`。这样才能正确调用到CS类中的方法。
希望这些详细的步骤能帮助到遇到类似问题的朋友们,节省你们宝贵的时间,避免不必要的困扰。毕竟时间就是生命,能少费点神,少掉几根毛也是好的。
编程语言
- IIS7中Ajax.AjaxMethod无效的原因及解决方法
- php调用淘宝开放API实现根据卖家昵称获取卖家店
- Java 项目生成静态页面的代码
- 基于CSS3和jQuery实现跟随鼠标方位的Hover特效
- PHP设计模式之数据访问对象模式(DAO)原理与用
- JavaScript-定时器0~9抽奖系统详解(代码)
- 老生常谈PHP面向对象之标识映射
- Vue-router 中hash模式和history模式的区别
- 全面认识ASP注入技巧
- JavaScript结合PHP实现网页制作中双下拉菜单的动态
- PHP网页游戏学习之Xnova(ogame)源码解读(七)
- php调用shell的方法
- 运用js实现图层拖拽的功能
- PHP命令行执行整合pathinfo模拟定时任务实例
- 调用WordPress函数统计文章访问量及PHP原生计数器
- golang实现php里的serialize()和unserialize()序列和反序