问题标签 [asp.net-apicontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 正确的 api-contoller 用于 durandal-project 中的动态 kendo-ui 网格
我在 Durandal 项目中工作,喜欢使用 kendo-ui 网格(Telerik 公司的)。
我也使用创建功能。很简单,在网格声明中我有以下代码:
我的网格是动态的。它说网格模式和列是建立在运行时的。所以,服务端方法需要通过泛型对象来接受数据,例如:dataTable。我不能接受特定类型,例如:产品/学生/汽车。
实现我的服务器端的正确方法是什么?控制器方法必须接受什么?
odata - 如何将 OData $select 功能添加到 WebAPI
我正在使用 WebApi v5 和 OData v4。
我有一个从 ApiController 扩展的控制器,它具有一种轮询存储库以获取简单类别列表的方法。
Category 类是一个简单的存储库实体类:
我的 WebApiConfig 中有以下代码:
没有任何额外的代码,我得到了 GET 请求的预期结果,例如:
当我发出以下 GET 请求时:v1/request/categories/?$select=CategoryName
我得到以下异常:
“System.Linq.EnumerableQuery
1[System.Web.Http.OData.Query.Expressions.SelectExpandBinder+SelectSome
1[SWF.ITSR.Domain.Entities.Category]]”类型的对象无法转换为“System.Collections.Generic.IEnumerable`1[SWF.ITSR.Domain.Entities.Category]”类型.
经过一番研究,我在控制器中更改了 Categories 方法:
当我在此更改后调用 $select 时,我得到与上述相同的错误。
我尝试将方法修改为以下内容:
我在调用 $select 时遇到了一个稍微不同的异常
无法将“System.Linq.EnumerableQuery
1[System.Web.Http.OData.Query.Expressions.SelectExpandBinder+SelectSome
1[SWF.ITSR.Domain.Entities.Category]]”类型的对象转换为“System.Collections.Generic.IEnumerable`1[SWF.ITSR.Domain.Entities.Category]” .
这可能在语义上与第一个错误相同(可能在其他地方失败)
我花了很多时间研究如何将 $select(和 $expand)功能添加到我的 WebApi 控制器,但无济于事。我已经尝试了无数张贴的建议,但仍然没有答案。我将不胜感激任何帮助。
谢谢,
肯
json - ODATAController多级序列化
我正在使用 Odata 控制器。关于我希望 siteUsers 和 siteUser.Login 序列化的响应。目前只有最顶层的 siteUsers 正在序列化。做这个的最好方式是什么?
命名空间 SOW.Controllers {
}
asp.net-mvc - Owin, WebApi, and UseCookieAuthentication
I've configured OWIN in my ASP.NET MVC application using cookie authentication, but when I attempt to access an ApiController with an Authorize attribute on it, authorization fails and I can't figure out why. Stepping into the IsAuthorized method of the Authorize attribute, I can see that none of the identity properties that are present when accessing an MVC controller are present, so it certainly appears (at least to the authorize attribute) that the user is not authenticated.
The app is configured as follows:
Do I absolutely have to use bearer tokens for WebAPI or is there just something I'm missing.
c# - 如何从另一个 .net 项目调用 ApiController?
我有一个 Asp.net Mvc3 项目,并在其中制作了一个 ApiController。现在我想在 Windows 应用程序项目中调用 api。而且我不知道如何配置 Global.asax 或 web.config 文件来解决这个问题。而且我不知道服务引用 url 是什么(如果 ApiController 名称是 Service 并且其中的方法是 UpdatePrice)?
asp.net-web-api - 将 JSON 数组从 Javascript 传递到 Web API 控制器方法
我无法在 web api 控制器方法 (SaveDetails) 中获取 JSON 数组参数。
这是我的代码。
JavaScript 代码:
控制器方法
模型方法:
在 web api 方法中获取 JSON 数组参数需要进行哪些更改。
c# - 用于 int 或字符串 URI 参数的 ApiController 相同路由
我希望我的控制器根据相同变量名的数据类型扩展端点。例如,方法 A 采用 int,方法 B 采用字符串。我不想声明新路由,而是希望路由机制区分整数和字符串。这是我的意思的一个例子。
“ApiControllers”设置:
“WebApionfig.cs”添加了以下路由:
我想打电话"http://controller/1"
并"http://controller/one"
得到结果。相反,我看到了多路线异常。
asp.net-mvc - 简单 MVC RoutePrefix - HTTP 错误 404.0 - 未找到
我已经编写了一个API controller
,我希望将一个添加RoutePrefix
到这个控制器中。
我的控制器名称是MapCompanyController
,这个控制器有一个方法叫做GetMapCompany
.
目前,我可以通过调用以下网址访问此方法:/api/MapCompany/GetMapCompany
我希望添加一个RoutePrefix
以便此方法的路径是:/api/1_0/MapCompany/GetMapCompany
这就是我所做的:
- 我已添加
[RoutePrefix("1_0")]
到MapCompanyController
- 我已添加
routes.MapMvcAttributeRoutes();
到RegisterRoutes
RouteConfig
这样做之后,我仍然可以使用/api/MapCompany/GetMapCompany
地址访问方法,并且/api/1_0/MapCompany/GetMapCompany
执行以下错误:
我可以对这段代码有一些帮助吗?
提前致谢
编辑
我创建了一个简单的控制器,如下所示:
要访问该Get
功能,以下 url 是正确的:
api/TestRoute/5
如果我将代码更改为如下:
函数的路径是什么Get
?
我尝试了以下方法:
- /api/TestRoute/5
- /api/routetest/5
- /routetest/api/TestRoute/5
- /api/TestRoute/routetest/5
http-post - API 控制器不能使用新的构造函数
我的 API 控制器有一个方法
如果我删除这段代码
它可以工作,但是每当我创建服务时,API 方法都无法工作
在客户端控制台上总是打印出这个错误
POST localhost:17699/photo/upload/%7Bphoto%7D 500(内部服务器错误)
我不知道为什么,因为我的其他 API 控制器可以正常工作。
我已经搜索、清理和构建项目......等等......
你们能帮帮我吗
.net - 带有.Net ApiController设置的Bitbucket POST Hooks?
我正在尝试让我的 .Net WebApi 2.2 接受来自 bitbucket 的帖子。但是 BB 不会将其数据作为主体发布,而是作为发布参数发布。
我在这里使用 PostMan 模拟了 bitbucket 发送的内容: http ://www.posttestserver.com/data/2014/11/05/shea/22.05.091712543622
您可以在此处导入 PostMan 集合:https ://www.getpostman.com/collections/ec562c5141d85fe7b850
当我尝试发布到我的 ApiController 时,我得到
当我的 post 函数签名如下所示时,就会发生这种情况:
或 public string Post(string payload) { var hookEvent = JsonConvert.DeserializeObject(payload); ……
当我做:
有效负载不为空,但其中的所有字段均为空。
给出这个错误:
我知道我的“HookEvent”正在正确反序列化,因为如果更改 PostMan 以将有效负载作为请求正文发送,则对象将正确反序列化,并设置所有字段。不幸的是,BB 并没有以这种方式发送有效载荷,而是作为 post 参数发送。
我的控制器签名是:
其他路由位:
和 Global.asax.cs 中的 Application_Start()
我必须做什么才能让我的控制器接受 post 有效负载?