【问题标题】:jQuery and .NET 2.0jQuery 和 .NET 2.0
【发布时间】:2009-12-17 12:01:21
【问题描述】:

我使用 jQuery 制作了一个 .NET 2.0 应用程序。

但是,当我将它部署在没有安装 .NET 3.5 的服务器上时,它不起作用。

我没有收到任何错误,也不知道如何调试它。

我使用 jquery-1.3.2.min.js。

在我的测试环境和安装了 3.5 的其他服务器上完美运行。

一旦使用 2.0 上传到生产服务器,ASP.NET 中的每个回调都会失败。

<script type="text/javascript">
    $(document).ready(function() {
        var item = $("[id$='txtItemName']");
        var category = $("[id$='ddlCategories']");
        var record = $("[id$='txtRecordID']");

        $("#btnSave").click(function() {


            if (item.val().length == 0) {
                alert("Please enter item name first.");
                return false;
            }

            if (category.val().length == 0) {
                alert("Please select a category.");
                return false;
            }

            var paramArray = ["testText", escape(item.val()), "categoryID", category.val(), "recordID", 1];
            PageMethod("SaveMyData", paramArray, AjaxSucceeded, AjaxFailed);

        });
    });

    function AjaxSucceeded (result)   
    {    
        alert("lykkedes" + result);
    }
    function AjaxFailed(result) 
    {
        alert("failed" + result);

    }  

    function PageMethod(fn, paramArray, successFn, errorFn) {
        var pagePath = window.location.pathname;
        //Create list of parameters in the form:   
        //{"paramName1":"paramValue1","paramName2":"paramValue2"}   
        var paramList = '';
        if (paramArray.length > 0) {
            for (var i = 0; i < paramArray.length; i += 2) {
                if (paramList.length > 0) paramList += ',';
                paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
            }
        }
        paramList = '{' + paramList + '}';
        //Call the page method   
        $.ajax({
            type: "POST",
            url: "DataProcessor.aspx?" + fn + "=1",
            contentType: "application/json; charset=utf-8",
            data: paramList,
            dataType: "json",
            success: successFn,
            error: errorFn
        })
    ;} 
</script>

DataProcessor 过程如下所示:

public void SaveMyData()
{
    System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
    string line = "";
    line = sr.ReadToEnd();
    JObject jo = JObject.Parse(line);
    string temp = (string)jo["recordID"];
    Response.Write(temp);
}

我尝试时输入AjaxFailed(result)....

非常感谢任何帮助和建议...

【问题讨论】:

  • 您能提供您遇到的错误吗?
  • 我想但不知道如何获取一些错误代码..返回结果为空..

标签: c# asp.net jquery ajax


【解决方案1】:

我不自豪在这里回答我自己的问题,因为这确实是我犯的一个菜鸟错误......

我使用的 JSON DLL 不是支持 .NET 2.0 的那个。我不知何故忽略了这个事实,它在我安装了 3.5 的测试环境中运行。

我下载了最新版本的 JSON.net dll 并使用了 2.0 DLL,一切都很顺利。

感谢这里的贡献。

【讨论】:

    【解决方案2】:

    问题可能是 JSON 序列化程序,您的服务器是否安装了 ASP.Net 2.0 AJAX 扩展?

    【讨论】:

    • 我已经问过我的主机是否安装了。如果没有安装的话,还有什么办法吗?
    【解决方案3】:

    如果您无法调试,因为它在生产环境中,那么您可以插入诊断吗?

    您是在使用 AjaxFailed 功能,还是根本没有?

    第一个建议是在代码间隔编写简单的 alert() 语句,看看您是否可以跟踪正在发生的事情。您可能想要查看调用返回的 httpresult 状态和 httpresult responseText。

    在服务器端,您能否在特定阶段写入一些日志文件值,即 JSON 字符串。

    也会回应上述关于序列化程序的内容。尝试使用

    using System.Web.Script.Serialization;
    
    JavaScriptSerializer jss = new JavaScriptSerializer();
    
    MyCustomClass mcc = jss.Deserialize<MyCustomClass>(someJSONstring);
    
    string someOtherJSONString = jss.Serialize(mcc);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      相关资源
      最近更新 更多