代码之家  ›  专栏  ›  技术社区  ›  Nathan Boswell

ASP。net API get调用返回控制器类,而不是数据

  •  0
  • Nathan Boswell  · 技术社区  · 10 年前

    我在ASP.net中创建了一个API。我的Sencha SPA正在尝试从中获取数据。不幸的是,get调用返回的是控制器类,而不是我想要的数据。有什么想法吗?

    下面是get方法:

    private firstAPIContext db = new firstAPIContext();
    
        // GET: api/AccountModels
        public IQueryable<Account> GetAccountModels()
        {
            return db.Accounts;
        }
    
        // GET: api/AccountModels/5
        [ResponseType(typeof(Account))]
        public async Task<IHttpActionResult> GetAccountModel(string username)
        {
            Account accountModel = await db.Accounts.FindAsync(username);
            if (accountModel == null)
            {
                return NotFound();
            }
    
            return Ok(accountModel);
        }
    

    以下是Sencha的其余代理代码:

    Ext.define('MyApp.store.AccountsStore', {
        extend: 'Ext.data.Store',
    
        requires: [
            'MyApp.model.AccountModel',
            'Ext.data.proxy.Rest'
        ],
    
        constructor: function(cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'AccountsStore',
                model: 'MyApp.model.AccountModel',
                proxy: {
                    type: 'rest',
                    url: '/Controllers/AccountsController.cs'
                }
            }, cfg)]);
        }
    });
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   Awais Rathore    10 年前

    请确保您在Sencha商店中添加了JSON读取器。以便您可以读取服务器发送的响应。还要确保从服务器发回JSON数据。在Global.axpx中添加以下行

     var config=GlobalConfiguration.Configuration;
     config.Formatters.Clear();
     config.Formatters.Add(new JsonMediaTypeFormatter());
    

    还可以将url更改为如下 url:'/Controllers/AccountsController/'

    这似乎是我的主要原因,因为你添加了一个扩展 .cs文件 这就是为什么当您调用该方法时,它会返回整个控制器类而不是数据。尝试删除此扩展,并按照我的建议进行操作。希望一切顺利

    推荐文章