朝、
Webサービスからメッセージを返す必要があります。以下は私のコードのサンプルで、文字列を返しています。
[web method]
public string CheckFeedSubmission()
{
string responseText = "";
try
{
//Stuff goes here
responseText = "It Worked!"
}
catch (Exception ex) { responseText = "Opps wehave an error! Exception message:" + ex.Message; }
return responseText ;
}
私は現在、次の応答を受け取ります...
<string xmlns="http://tempuri.org/"/>
私は理想的には次のようなものを返したいです
{"success" : true, "message" : "***Message Here***"}
私はそれのアイデアを得たら、私は必要に応じて他のアイテムを返すことができると確信しています。そのちょうどこのベースは私が解決する必要があります。
前もって感謝します:)
更新:これを見つけました...
return "{Message:'hello world'}"
次のようなものが必要ですか
responseText = "{"success" : true, "message" : \"There has been an error. Message: " + ex.Message + "\"}"
使用:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//Specify return format.
public string CheckFeedSubmission()
{
string responseText = "";
try
{
//Stuff goes here
responseText = "It Worked!"
}
catch (Exception ex) { responseText = "Opps wehave an error! Exception message:" + ex.Message; }
return responseText ;
}
返される結果は次のようになります:
<string xmlns="http://tempuri.org/"/>
{"success" : true, "message" : "***Message Here***"}
</string>
Webメソッドの属性を使用してください
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
呼び出し元は、webmethodを使用するためにcontenttypeをapplication/jsonに設定します
これはフレームワーク4.5.2の私のソリューションです。クラスFilterConfigに次のコードを追加します。注:lib Newtonsoftが必要になります。
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
GlobalConfiguration.Configuration.EnableCors();
filters.Add(new HandleErrorAttribute());
}
}
これを試してください:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]//Specify return format.
public bool addUser(UserModel um)
{
bool result = false;
result = Conversion.intToBool(SplashAwardsDB.executeNonQuery(
"INSERT INTO dbo.User ("
+ "userName, password, firstName, lastName, address, contactNo, birthDate, familyID, familyRole, x, y ) "
+ " VALUES ("
+ "'" + um.userName + "', "
+ "'" + um.password + "', "
+ "'" + um.firstName + "', "
+ "'" + um.lastName + "', "
+ "'" + um.address + "', "
+ "'" + um.contactNo + "', "
+ "'" + um.birthDate + "', "
+ "'" + um.familyID + "', "
+ "'" + um.familyRole + "', "
+ "'" + um.x + "', "
+ "'" + um.y + "')"
));
return result;
}
サービスレスポンスのXMLタグを削除するには、StackOverflowで次の回答をご覧ください。