web-dev-qa-db-ja.com

ASP.NET Core-「JsonRequestBehavior」という名前は現在のコンテキストに存在しません

ASP.NET Core(.NET Framework)プロジェクトでは、次のController Actionメソッドで上記のエラーが発生しています。何が欠けているのでしょうか?または、回避策はありますか?:

    public class ClientController : Controller
    {
      public ActionResult CountryLookup()
      {
        var countries = new List<SearchTypeAheadEntity>
            {
                new SearchTypeAheadEntity {ShortCode = "US", Name = "United States"},
                new SearchTypeAheadEntity {ShortCode = "CA", Name = "Canada}
            };

        return Json(countries, JsonRequestBehavior.AllowGet);
      }
    }

[〜#〜] update [〜#〜]

以下の@NateBarbettiniからの以下のコメントに注意してください。

  1. JsonRequestBehaviorはASP.NET Core 1.0で非推奨になりました。
  2. 以下の@Miguelから受け入れられた応答では、return typeアクションメソッドdoes not特にJsonResult型である必要があります。 ActionResultまたはIActionResultも機能します。
35
nam

JSON形式のデータを返す:

public class ClientController : Controller
{
    public JsonResult CountryLookup()
    {
         var countries = new List<SearchTypeAheadEntity>
         {
             new SearchTypeAheadEntity {ShortCode = "US", Name = "United States"},
             new SearchTypeAheadEntity {ShortCode = "CA", Name = "Canada}
         };

         return Json(countries);
    }
}
36
Miguel Torres C

jsonでメッセージを返す必要がある場合があります。単純に次のようにjsonの結果を使用します。jsonrequestbehaviorは必要ありません。

public ActionResult DeleteSelected([FromBody]List<string> ids)
    {
        try
        {
            if (ids != null && ids.Count > 0)
            {
                foreach (var id in ids)
                {
                    bool done = new tblCodesVM().Delete(Convert.ToInt32(id));

                }
                return Json(new { success = true, responseText = "Deleted Scussefully" });

            }
            return Json(new { success = false, responseText = "Nothing Selected" });
        }
        catch (Exception dex)
        {

            return Json(new { success = false, responseText = dex.Message });
        }
    }
2
Ali