14

テストASP.NETMVC3アプリにComboBox(Telerik RAD COmboBox)を設定しようとしています。

ASPXページでComboBoxを定義し、コントローラーでJsonResultを返すアクション呼び出しを定義しました。

私が抱えている問題は、使用しているWebサービスがすでに結果セットをJSON文字列として返していることです。Webサービスからの応答を直接渡すにはどうすればよいですか。

コードのスニペットは次のとおりです。ASPXページ:

<% Html.Telerik().ComboBox()
                       .Name("cbRefTables")
                       .DataBinding(b => b
                           .Ajax()
                           .Select("GetCALMdata","Common")                    
                       )
                       .Render();
                %>

コントローラー:CommomControllerと呼ばれます

    public JsonResult GetCALMdata()
    {
        CALMwsP.wsCALMSoapClient wsC = new CALMwsP.wsCALMSoapClient("wsCALMSoap");
        string resultset = wsC.GetRefTables("P_1", "P_2", "P_3", "P_4");

        return ??; -- I want to return resultset which is already formatted. 
    }
4

5 に答える 5

27

ASP.NET MVC 2以降を使用している場合:

return Json(resultset, JsonRequestBehavior.AllowGet);
于 2011-05-05T17:01:39.233 に答える
19

resultset文字列がすでにJSONである(そしてXMLでラップされていない)場合は、まさにその文字列をコンテンツとして含むを返しますContentResult

public ContentResult GetCALMdata()
{
    CALMwsP.wsCALMSoapClient wsC = new CALMwsP.wsCALMSoapClient("wsCALMSoap");
    string resultset = wsC.GetRefTables("P_1", "P_2", "P_3", "P_4");

    return Content(resultset, "application/json");
}

JsonResultこの場合、またはヘルパーを使用する必要はありませんJson()。これは、JSONを再シリアル化することになるためです。

于 2011-05-05T17:44:26.467 に答える
5

私が正しく理解していれば、Json()メソッドを使用する必要があります

return Json(resultset);
于 2011-05-05T16:58:13.087 に答える
1

個々のJsonメソッド:

return Json(resultset);

System.Web.Http DLLが必要であり、名前空間はSystem.Web.Http.Resultsです。

ここに画像の説明を入力してください


または、Webサイト全体でこの行をWebApiConfig.csに配置します

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
于 2018-06-12T04:25:47.127 に答える
1

MVC 5およびそれ以下では、次のようなことができます。

            var dict = new Dictionary<string, string>
            {
                { "name", "Foobar" },
                { "url", "admin@foobar.com" }
            };

            var json = new JsonResult()
            {
                Data = dict
            };
于 2020-01-01T00:49:42.057 に答える