Да, вы можете. Вам нужно будет создать объект, который соответствует общедоступным свойствам вашего UserDefinedType. Это довольно просто, если вы используете .Net webservices и пометили метод как [ScriptMethod ()], который затем будет отвечать на JSON.
Вот пример:
public class UserDefinedType
{
public int Property1 { get; set; }
public string Property2 { get; set; }
}
Который вы можете передать как параметр, используя следующий javascript:
var param = "{ Property1 : '"+prop1Val+"', Property2 : '"+prop2Val+"'}";
Обратите внимание, что вы должны объявить JSON-объект, передаваемый в виде строки, так как в противном случае, если вы используете jQuery.ajax (...), он будет сериализовывать ваш объект param в закодированную строку параметров, а не передавать его как собственный JSON строка.
Есть также несколько хороших библиотек, которые позаботятся о том, чтобы объект данных JSON связывался с вами, например jquery-json 2.2 . Используя это, вы можете просто передать параметр как $ .toJSON (param).
Наконец, вот пример отправки запроса в веб-сервис ASP .Net с использованием jquery:
$.ajax({
type: "POST",
url: "/Services/YourService.asmx/YourMethod",
cache: false,
data: $.toJSON(param), // Convert JSON object to String for Post
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
HandleResponse(response.d)
},
error: function (e) {
alert('error during web service call');
}
});