【问题标题】:Why can not return json from web api controller?为什么不能从 web api 控制器返回 json?
【发布时间】:2017-05-25 08:41:44
【问题描述】:

我是 asp.net mvc 的新手,想用 web api 控制器返回 json,为此编写以下代码:

public JsonResult Get()
        {
            var users = GetUsers();
            return Json(users, JsonRequestBehavior.AllowGet);
        }
        private List<TestModel> GetUsers()
        {
            var usersList = new List<TestModel>
            {
                new TestModel
                {
                    id = "1",
                    name = "behzad"
                }
            };
            return usersList;
        }


但在这一行:

JsonRequestBehavior.AllowGet


收到此错误:

严重性代码描述项目文件行抑制状态 错误 CS1503 参数 2:无法从 'System.Web.Mvc.JsonRequestBehavior' 到 'Newtonsoft.Json.JsonSerializerSettings' WebApplication1 D:\behzad\project\aspweb api\WebApplication1\WebApplication1\Controllers\HelloController.cs 17 活动

【问题讨论】:

  • 谁反对我?我说的是初学者!
  • return Json(new SelectList(users.ToArray(), "id", "name"), JsonRequestBehavior.AllowGet);试试这个就行了
  • @LaxmanGite 得到那个错误我的朋友
  • var statelist = _masterService.GetStates().Where(st => st.CountryId == Id).ToList(); return Json(new SelectList(statelist.ToArray(), "Id", "Name"), JsonRequestBehavior.AllowGet);让你的代码像这样

标签: asp.net-mvc asp.net-web-api2


【解决方案1】:

如果您想将所有 ASP.Net Web API 结果返回JSON。你需要一个全局配置来让你的动作舒服。

对于这种情况,您不需要调用任何额外的服务来解析JSON。按照这个:

    public List<TestModel> Get()
    {
        return GetUsers();
    }

但你需要一些设置才能拥有它,将下面的行放在Global.asax 文件和Application_Start 方法中:

GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);

【讨论】:

    【解决方案2】:
    public IHttpActionResult Get()
    {
            var users = GetUsers();            
            return Ok(users);
    }
    private List<TestModel> GetUsers()
    {
            var usersList = new List<TestModel>
            {
                new TestModel
                {
                    id = "1",
                    name = "behzad"
                }
            };
            return usersList;
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 2013-04-30
      • 1970-01-01
      相关资源
      最近更新 更多