ASP.net和Jquery问题

brccelvz  于 2023-10-21  发布在  .NET
关注(0)|答案(2)|浏览(120)

使用本教程:http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx
1.调用Web服务,例如Service1.asmx/HelloToYou
然而,www.example.com中的默认Web服务asp.net不会加载具有此重写URL的页面,相反,我只能将其称为:Service1.asmx?操作= Hello ToYou
如何实现所谓的URL重写?
1.默认的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 ";
        }
    }

}
uinbv5nw

uinbv5nw1#

我曾经为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类中使用字符串属性。

3phpmpom

3phpmpom2#

你需要在文件后面的代码中取消注解一些行。

相关问题