私はこの問題に関するすべての投稿を読みましたが、何も問題を解決しませんでした。誰かがそれを手伝ってくれたら嬉しいです。
私が追加したWebサービスを備えたMVC3プロジェクトがあります。Testという関数は1つしかなく、HTTP GETメソッド(通常のURL)を介して呼び出すと、JSONではなくXML形式でデータが返されます。JSONを返すようにするにはどうすればよいですか?
Webサービス:
namespace TestServer
{
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class TestWebservice : System.Web.Services.WebService
{
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public List<string> Test()
{
return new List<string>
{
{"Test1"},
{"Test2"}
};
}
}
}
web.config(関連する部分のみ):
<configuration>
<location path="TestWebservice.asmx">
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
</system.web>
</location>
<system.web>
<webServices>
<protocols>
<clear/>
</protocols>
</webServices>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx"
type="System.Web.Script.Services.ScriptHandlerFactory"
validate="false"/>
</httpHandlers>
</system.web>
</configuration>
URL:
http://localhost:49740/testwebservice.asmx/Test
結果(これは私が望むものではありません):
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>Test1</string>
<string>Test2</string>
</ArrayOfString>
誰かが私を助けてくれたら嬉しいです。