Оценка в перетаскиваемых файлах jQuery

#c# #jquery #scoring

#c# #jquery #оценка

Вопрос:

Я работаю над игрой на jQuery, и я новичок в ней. Мне было интересно, как можно сохранить результаты этих игр в некоторой переменной, а затем в некоторой переменной в c #, чтобы я мог установить SQL-соединение и отправить его в таблицу БД. Я не знаю, возможно ли это, но я хочу, чтобы это работало примерно так. Не знаю, как использовать вызов ajax и прочее. Мне было бы легче работать, если бы он каким-то образом был связан с c #. Я работаю над asp.net веб-формы.

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

Вот код,

  $(document).ready(function () {
            $('#Img6').hide();
            $('#Img7').hide();
            $(function () {
            $("#draggable").draggable({ revert: "invalid", helper: 'clone', tolerance: 'fit' });
            $("#draggable1").draggable({ revert: "invalid", helper: 'clone', tolerance: 'fit' });
            $("#draggable2").draggable({ revert: "invalid", helper: 'clone', tolerance: 'fit' });
            $("#droppable").droppable({

                activeClass: "ui-state-default",
                hoverClass: "ui-state-hover",
                drop: function (event, ui) {
                    var TestOp = $(this).attr('id');
                    if (TestOp == "droppable") {
                        $("#draggable2").draggable({ revert: "invalid" });
                        $("#draggable1").draggable({ revert: "valid" });
                        $("#draggable").draggable({ revert: "valid" });

                        $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Dropped!");
                        return true;
                    }

                    else {
                        $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Wolaaa");
                    }
                }
            });
        });


        $(".arrow").click(function () {
            $('#Img1').hide();
            $('#Img6').show();

            $(function () {
                $("#draggable").draggable({ revert: "valid", helper: 'clone' });
                $("#draggable1").draggable({ revert: "valid", helper: 'clone' });
                $("#draggable2").draggable({ revert: "valid", helper: 'clone' });

                //            $(".draggable,.draggable1,.draggable2").draggable('refresh');
                $("#droppable").droppable({
                    activeClass: "ui-state-default",
                    hoverClass: "ui-state-hover",
                    drop: function (event, ui) {
                        var TestOp = $(this).attr('id');
                        if (TestOp == "droppable") {
                            $("#draggable2").draggable({ revert: "valid" });

                            $("#draggable1").draggable({ revert: "valid" });
                            $("#draggable").draggable({ revert: "invalid" });

                            $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Dropped!");
                            return true;
                        }

                        else {
                            $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Wolaaa");
                        }
                    }
                });
            });

        });
        $(".arrow").dblclick(function () {
            $('#Img7').show();
            $('#Img6').hide();
            $('#Img1').hide();
            $(function () {
                $("#draggable").draggable({ revert: "invalid" });
                $("#draggable1").draggable({ revert: "invalid" });
                $("#draggable2").draggable({ revert: "invalid" });
                $("#droppable").droppable({
                    activeClass: "ui-state-default",
                    hoverClass: "ui-state-hover",
                    drop: function (event, ui) {
                        var TestOp = $(this).attr('id');
                        if (TestOp == "droppable") {
                            $("#draggable2").draggable({ revert: "valid" });
                            $("#draggable1").draggable({ revert: "invalid" });
                            $("#draggable").draggable({ revert: "valid" });

                            $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Dropped!");
                            return true;
                        }

                        else {
                            $(this)
      .addClass("ui-state-highlight")
      .find("> p")
        .html("Wolaaa");
                        }
                    }
                });
            });
        });

        $(".leftarrow").click(function () {
            $('#Img1').show();
            $('#Img6').hide();
            $('#Img7').hide();
        });
    });

    $('#submitScore').on('click', function (e) {

    $.post( 'example.aspx', { userScore: '100', userId: '2' })
    .done(function (data) {

    alert( "Data Loaded: "   data );
    });

    });
 

Ответ №1:

Я бы посоветовал использовать локальное хранилище HTML для хранения результатов. Это также позволит сохранять оценки между сеансами.

Вы можете прочитать о локальном хранилище здесь: http://diveintohtml5.info/storage.html

Если вы хотите вернуть значение обратно в C #, а также / вместо этого, вы можете просто сделать это с помощью обычного вызова Ajax. Предполагая, что вы используете MVC и Web API, затем настройте маршрут, если он отличается от стандартного;

         config.Routes.MapHttpRoute(
            name: "ScoreApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
 

Затем создайте контроллер веб-Api (или обычный контроллер, если вы действительно этого хотите, но вам также нужен стандартный маршрут MVC).;

     [HttpPost]
    public HttpResponseMessage Post(string score)
    {
        ////DO SOMETHING WITH SCORE

        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value");
        response.Content = new StringContent("Score Saved", Encoding.Unicode);
        response.Headers.CacheControl = new CacheControlHeaderValue()
        {
        MaxAge = TimeSpan.FromMinutes(20)
        };

        return response;
    }
 

Теперь, наконец, просто вызовите из своей функции удаления;

         $.ajax({
            type: "POST",
            url: "/api/SaveScore"   score,
            contentType: "application/json",
            dataType: "json",
            success: function(data) {

                alert(Data);

            }
        });
 

Комментарии:

1. Я работаю над веб-формами asp.. Можете ли вы подсказать, что я могу сделать в asp webforms?

2. Что касается локального хранилища, то это, очевидно, остается неизменным в webforms. Вы также можете по-прежнему использовать Web API с проектом Web Forms (это то, что я бы рекомендовал). Проверьте эту ссылку: ссылка

3. Я должен добавить код маршрута в Application_Start, верно? Это выдает ошибку в конфигурации..

4. Да, маршруты должны быть в Application_Start. У вас есть правильный . Ссылки на сетевую версию и API? Для этого может потребоваться открыть отдельный вопрос.

5. Что вы имеете в виду? Я не знаю, имеет ли это какое-то отношение к ссылкам на API и . Сетевая версия. Версия 4.5.