Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET Core - The name 'JsonRequestBehavior' does not exist in the current context

In my ASP.NET Core (.NET Framework) project, I'm getting above error on my following Controller Action method. What I may be missing? Or, are there any work arounds?:

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:

Please note folowing comments from @NateBarbettini below:

  1. JsonRequestBehavior has been deprecated in ASP.NET Core 1.0.
  2. In accepted response from @Miguel below, the return type of action method does not specifically need to be of type JsonResult. ActionResult or IActionResult works too.
like image 765
nam Avatar asked Jul 25 '16 22:07

nam


3 Answers

Returning Json-formatted data:

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);
    }
}
like image 150
Miguel Torres C Avatar answered Nov 13 '22 18:11

Miguel Torres C


In Code it's replace To JsonRequestBehavior.AllowGet with new Newtonsoft.Json.JsonSerializerSettings()

It's Work same as JsonRequestBehavior.AllowGet

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, new Newtonsoft.Json.JsonSerializerSettings());
  }
}
like image 10
Ravi Makwana Avatar answered Nov 13 '22 18:11

Ravi Makwana


Some times you need to return a message back in JSON, simply use the JSON result as below, no need for jsonrequestbehavior any more, below simple code to use:

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 });
    }
}
like image 4
Ali Avatar answered Nov 13 '22 20:11

Ali