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からの以下のコメントに注意してください。
JsonRequestBehavior
はASP.NET Core 1.0で非推奨になりました。return type
アクションメソッドdoes not
特にJsonResult型である必要があります。 ActionResultまたはIActionResultも機能します。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);
}
}
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 });
}
}