jQuery и .NET 2.0 - PullRequest
       10

jQuery и .NET 2.0

0 голосов
/ 17 декабря 2009

Я создал приложение .NET 2.0 с использованием jQuery.

Однако, когда я развернул его на моем сервере, на котором не установлен .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 (результат), когда я пытаюсь это сделать ...

Любая помощь и предложения очень ценятся ...

Ответы [ 3 ]

1 голос
/ 17 декабря 2009

Я не горжусь тем, что могу ответить на свой вопрос, потому что это действительно ошибка, которую я совершил ...

Я использовал JSON DLL не с поддержкой .NET 2.0. Я как-то проигнорировал этот факт, и он работал в моей тестовой среде с установленным 3.5.

Я скачал последнюю версию DLL JSON.net и использовал библиотеку DLL 2.0, и все получилось, как чудо.

Спасибо за вклад сюда.

0 голосов
/ 17 декабря 2009

Если вы не можете отладить, потому что он находится в производственной среде, можете ли вы вставить диагностику?

У вас есть функция AjaxFailed или нет?

Первым предложением было бы написать простые операторы alert () с интервалами кода, чтобы посмотреть, сможете ли вы отследить происходящее. Возможно, вы захотите взглянуть на статус httpresult и текст отклика httpresult, который возвращается после вызова.

На стороне сервера вы можете записывать в некоторые значения файла журнала на определенных этапах, например, строку JSON.

Также подтвердит вышесказанное в отношении сериализатора. Попробуйте использовать

using System.Web.Script.Serialization;

JavaScriptSerializer jss = new JavaScriptSerializer();

MyCustomClass mcc = jss.Deserialize<MyCustomClass>(someJSONstring);

string someOtherJSONString = jss.Serialize(mcc);
0 голосов
/ 17 декабря 2009

Возможно, проблема в сериализаторе JSON. На вашем сервере установлены расширения ASP.Net 2.0 AJAX?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...