Возможно, вы захотите изучить использование jQuery для клиентской библиотеки JavaScript. Это позволяет довольно просто получать данные из сервисов ASMX / WCF, созданных в .NET. Вы можете возвращать данные различными способами XML / JSON и легко манипулировать страницей с помощью селекторов JQuery DOM!
Вот простой вызов для загрузки некоторых данных JSON через службу ASMX.
$.ajax({
type: "POST",
url: "demo.asmx/GetData",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{q:'a', limit: 10}", // Passing params to function!
success: function(res) {
// Do your work here.
// Remember, the results for a ASMX Web Service are wrapped
// within the key "d" by default. e.g. {"d" : "Hello World"}
}
});
А вот пример сервиса ASMX, возвращающего LIST, который действительно мог быть чем угодно. Если у вас уже есть строго типизированные объекты POCO, вы, вероятно, уже можете сериализовать свои данные, используя аналогичный метод. Существует также библиотека JSON.NET, которая позволит вам сериализовать весь DataTable.
[WebService (Namespace = "http://tempuri.org/")]
[WebServiceBinding (ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem (ложь)]
открытый класс автозаполнения: System.Web.Services.WebService
{
[WebMethod]
public List<string> GetData(string q, int limit)
{
// A collection to hold our results
List<string> customers = new List<string>();
// Our source of names, could be a DB query
string[] db = new string[]{"Amy","Betty","Brent","Fred","Mark","Sally","Sam","Richard","Wilma","Yolanda","Zack"};
// Looping through the datasource to select the items that match
foreach(string cust in db)
{
if(cust.ToLower().Contains(q.ToLower()))
{
customers.Add(cust);
}
}
// Sort the list
customers.Sort();
// Return the items that contained the text in alphabetical order
return customers;
}
}
Множество вещей, которые вы можете сделать, и много людей пишут об использовании этих технологий. Если вы только начинаете, вам, вероятно, стоит взглянуть на WCF, поскольку он является преемником сервисов ASMX!