使用本教程: 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 ";
}
}
}
答案 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)
您需要在文件后面的代码中取消注释某些行。