ASP.net и Jquery вопросы - PullRequest
       19

ASP.net и Jquery вопросы

0 голосов
/ 09 ноября 2009

Использование этого урока: http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx

1) Веб-сервис вызывается, например, Service1.asmx / HelloToYou

Веб-служба по умолчанию в asp.net, однако, не загружает страницу с этим переписанным URL, вместо этого я могу ссылаться на него только как: Service1.asmx? Оп = HelloToYou

Как мне реализовать так называемое переписывание URL здесь?

2) веб-сервис asp.net по умолчанию: это формат JSON? не ясно, как и где я определяю формат.

На стороне Jquery я делаю что-то вроде:

$.ajax({
                 type: "POST",
                 url: "WebService/Service1.asmx/HelloToYou",
                 data: "{'name': '" + $('#name').val() + "'}",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 success: function(msg) {
                     AjaxSucceeded(msg);
                 },
                 error: AjaxFailed
             });

поэтому тип контента - JSON.

В asp.net 3.5 нужно ли специально устанавливать формат JSON или это JSON по умолчанию?

Спасибо!

ОБНОВЛЕНИЕ: в коде веб-службы позади

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace DummyWebService
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //[System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod()]
        public string HelloToYou(string name)
        {
            return "Hello " + name;
        }

        [WebMethod()]
        public string sayHello()
        {
            return "hello ";
        }
    }

}

Ответы [ 2 ]

1 голос
/ 10 ноября 2009

Я использовал для объявления определенного класса c # для ответа json. Если вы установите атрибут [Serializable] над ним, он будет сериализован во время ответа клиенту.

Что-то вроде:

[Serializable]
public class json_response
{
    public bool response { get; set; }

    public json_response() { }

    public json_response(bool response)
    {
        this.response = response;
    }
}

тогда в методе вы можете:

[WebMethod()]
public json_response method()
{
    /* your stuff */

    return new json_response(/* your result */);
}

с помощью javascript вы можете обработать JSON просто:

...
success: function(msg) {
                     /* in the msg.d.response you'll find your c# boolean variable */
                 },

...

Для вашего примера просто используйте строку proprerty в классе json_response.

0 голосов
/ 09 ноября 2009

Вам необходимо раскомментировать некоторые строки в коде файла.

...