Passing Custom Object As Parameter To A Webmethod Of Web Service?
May 11, 2010
I have a custom class declared as follows (in vb.net)
<Serializable()> _ Public
Class NumInfo Public n As String
Public f As Integer Public fc As
char() Public t As Integer
[Code]....
What am I doing wrong? For the record I tried replacing char() with string to see if it was the array causing problems but that didn't help either. I'm fairly new to web services. I tried replacing the custom object parameter with a primitive parameter just to check how things worked and it rendered a page with an input field and invoke button.
I have a custom class declared as follows (in vb.net)
<Serializable()> _ Public Class NumInfo Public n As String Public f As Integer Public fc As char() Public t As Integer Public tc As char() Private validFlag As Boolean = True Public Sub New() End Sub
I also have public properties(read/write) for all the public variables
End Class In my service.asmx codebehind class I have a webmethod as follows: <WebMethod> _ <XmlInclude(GetType(NumInfo))> Public Function ConvertTo(ByVal info As NumInfo) As String Return mbc(info) 'mbc is another function defined in my service.asmx "service" class End Function
The problem is that when I start debugging it to test it, the page that I get does not contain any fields where I could input the values for the public fields of numInfo. How do I initialise the class? There is no "Invoke" button either. All I see are soap details as below:
ConvertTo Test The test form is only available for methods with primitive types as parameters. SOAP 1.1 The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values. POST /BaseConverter/BaseCon.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://RohitServices.in/ConvertTo" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ConvertTo xmlns="http://RohitServices.in/"> <info> <n>string</n> <f>int</f> <fc> <char>char</char> <char>char</char> </fc>
What am I doing wrong? For the record I tried replacing char() with string to see if it was the array causing problems but that didn't help either. I'm fairly new to web services. I tried replacing the custom object parameter with a primitive parameter just to check how things worked and it rendered a page with an input field and invoke button. I just can't seem to get it working with custom object.
The MyWebMethod returns an integer, and I want to set $(this).attr("id") of the jQuery object above to the returned integer. Basically, I'm trying to do the equivalent of an MVC Ajax.ActionLink...AjaxOptions {UpdateTargetID =...} However, I can't figure out how to get both a reference to $(this) as well as the returned value. For example, if I do:
I can succesfully manipulate the jQuery object, but obviously it doesn't have the return value from the MyWebMethod. Alternatively, the first code block with a method signature of onSuccessFunction(returnValue) has the correct return value from MyWebMethod, but no concept of the jQuery object I'm looking for. Am I going about this all wrong?
Recently, I tried to get my Web Service class to inherit from a custom base class that inherits from System.Web.Services.WebMethod instead of the System.Web.Services.WebMethod directly.
However, I've been getting Error 500.
Public Class Service1 Inherits BaseClass <System.Web.Services.WebMethod()> _ Public Function GetSessionID() As String GetSessionID = Me.Session.SessionID End Function End Class
public class BaseClass Inherits System.Web.Services.WebService public property Property1 as string public property Property2 as string
I've scenario where I want to insert data into database without post back. there are around 12 to 13 fields which i need to insert. I'm passing DTO from the client side which is actually Json object. Now the problem which i'm facing is how to convert that Json object which i got in webservice to the "class" (in my case class name is User) object.
[Code]....
In the above case AddNewUser method takes the object of User class. But i'm getting casting error. So how do I convert Json object to the "User" class object?
[WebMethod] [SoapHeader("_webServiceAuth")] public User GetUser(string username){ try { this._validationMethods.Validate(_webServiceAuth); User user = new User(username); [code]...
I've implemented a custom ASP.net membership provider to deal with forms authentication. The custom provider uses a custom User object for authentication and authorization. I was wondering If I can pass this object to each WCF call without adding it to the parameters list?
We need to create a simple web service in ASP.NET that can be called from PHP or other languages. This in turn will be used to update records in a database for an item submission.
The core part is fairly simple, we have a base set of fields for the object - first name, last name, birth date, city, etc. In addition however we need to accept a list of items associated with that object that can range from 0-n.
Jan 1 2009, ABC May 1 2010, 123 Jun 30 2010, XXXXX
What would be the best way to structure this so it can be easily passed to the ASP.NET web service and processed as a single call for the entire object? Would passing the list of items as a single delimted string be a wise approach? Ex: Jan 1 2009, ABC|May 1 2010, 123|Jun 30 2010, XXXXX
I'm kinda new to web services and want to make sure I am doing things correctly.
I have a custom object which has sub objects as well. (let's say Company object, sub object is collection of Employee objects)
I want the web service to return a collection of Company objects. Do I make the service return a Dataset and custom generate a dataset with datatables representing the different objects?
What is the best way to do this? I tried to just serialize it, but that doesn't seem to work either.
I tried this dll
[URL]
But the output XML doesn't seem to include the sub object.
I am trying to call web service from jquery..trying following way but i am not able to pass to complex type parameter to WCF service.My wcf function is as follows
<OperationContract()> <Web.WebGet(UriTemplate:="/GetData?strErrMsg={strErrMsg}&chrErrFlg={chrErrFlg}", ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)> _ Function GetData(ByRef strErrMsg As System.Collections.Generic.List(Of String), ByRef chrErrFlg As String) As String strErrMsg is System.Collections.Generic.List(Of String)
I am trying to call as follows
var Type; var Url; var Data; var ContentType; var DataType; var ProcessData; var parameters;
[code]...
And I am able to call other methods in same way having string and integer parameter.I have gone through this but didnt get anything. URL...
I am trying to return a sum total figure from a stored procedure by using the output parameter. When I execute the stored procedure in SQL it returns 0 or a valid number like it should but when I try to use the webmethod listed below I keep getting a 0 even when I should get a valid number back.
ALTER PROCEDURE spGetCustSum @CustomerCode CHAR(4), @Sum AS INTEGER OUTPUT AS BEGIN......
Am I missing a step or have some wrong code in this method?
Service: [WebMethod] public void GetCommission(List <BOLibrary.Flight.DTContract>Loc) { }
At the client side i am Passing the parameter Client
List<BOLibrary.Flight.DTContract> BoList = new List<BOLibrary.Flight.DTContract>(); BOLibrary.Flight.DTContract dtConboj = new BOLibrary.Flight.DTContract(); dtConboj.ValidatingCarrier = "AA"; BoList.Add(dtConboj); BOLibrary.Flight.DTContract[] pass = BoList.ToArray(); service.GetCommission(pass);
But the Problem is that the service.GetCommission(pass) accpect the argument of servicenameSpace.DTContract but in client in client i have BOLibrary.Flight.DTContract so how can i pass the parameter to the to the Service.
Is there a way to retrieving parameter names and values passed to a web method from Request object? I've read somewhere that you need extra code to access the soap body. Any known workarounds to be able to see the soap body from Application_BeginRequest?
I have a web Method in my C# that is called via Jquery ajax method. The web method should return an object back to the Jquery which will be used to populate. I have tried returning a JsonResult object, the actual object and nothing seems to work! I'm not using MVC (Unfortunately). Is there a way that I can return an object from my web method which can be used by my AJAX method? here is the link for my JQuery AJAX method [URL]
I've a problem: I've a GridView, with a folder structure, and an asp.net checkbox for each row in the gridview.Now, when the user clicks the delete button, it should delete all the folder entities where the user checked the checkbox.The problem is, there may not be a postback...So I used to use findcontrol in an ordinary asp.net button codebehind, but in a webmethod, it's impossible to access the page object, because WebMethods need to be static...Now I tried ctype(httprequest.current.request.handler,page) but that doesn't seem to work...
How can I get the page object to use findcontrol ?
I tried your code for Autocomplete without Webservice and didn't work on my page. When I tried it on a new project it works fine but on my project it does not. I have other controls on the page but that shouldn't stop it from working right?
I can't seem to call a web service method from Ajax with both POST and GET.
Initially only the POST would work and GET would causes this error:
{"Message":"An attempt was made to call the method u0027getDatau0027 using a GET request, which is not allowed.","StackTrace":" at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
I fixed that by adding this attribute: [ScriptMethod(UseHttpGet=true)] but now GET causes this error:
[code]....
So is it true that you can only use either POST or GET and not both from Ajax?