ASP.net和Jquery的问题

时间:2009-11-09 19:50:17

标签: asp.net jquery json .net-3.5

使用本教程: http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx

1)调用Web服务,例如 Service1.asmx的/ HelloToYou

然而,asp.net中的默认Web服务不会使用此重写的URL加载页面,而是只能将其称为: Service1.asmx的?OP = HelloToYou

如何在这里实现所谓的url重写?

2)默认的asp.net Web服务:它是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?

谢谢!

更新:在后面的Web服务代码中

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 个答案:

答案 0 :(得分:1)

我曾经为json响应声明一个特定的c#类。 如果在其上方设置[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 */
                 },

...

对于您的示例,只需在json_response类中使用字符串proprerty。

答案 1 :(得分:-1)

您需要在文件后面的代码中取消注释某些行。