asp.net-mvc如何发布内容与 & web api 吗?

发布时间: 2017/3/25 1:47:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个问题要发布的内容与 & 像"企业并购是趋势......",消息在 M 只停

MVC Web API

  [HttpPost]
        public IHttpActionResult Post([FromUri] CommentModel param)
        {}

    public class CommentModel
    {       
        public int Id { get; set; }
        public string Message { get; set; }
        ...
    }

Web Api 配置︰

config.Routes.MapHttpRoute(
               name: "DefaultApi",
               routeTemplate: "api/{controller}/{id}",
               defaults: new { id = RouteParameter.Optional }

           );

从 angularJS 中调用它︰

 var message = encodeURI($scope.message);   
 var request = $http.post('api/comment/?message=' + message);

....

解决方法 1:

理想情况下,当您执行 HTTPPOST 时要发送的数据作为一个实体作为请求正文 (不在 URI) 的一部分。

那就是,您的 API 控制器方法应该如下所示︰

public IHttpActionResult Post(CommentModel param)

且都应该包含您的 HTTP/POST 请求 Content-type: application/json 标头和一个 JSON 实体作为的一部分要求身体 (再次,不在 URI 中!!!)。

最后,如果您需要发送 & 符作为您的资源的 Uri 中的数据或 url 形式编码的数据,你需要对他们进行编码,因为 & 符具有特定含义,在这种情况下 (他们是键-值对的分隔符)。如果你从 HTML5 应用程序执行请求,你可以编码您的参数使用 encodeURIComponent(...) 函数,和在.NET 中你可以使用 Uri.EscapeDataString .

邮政动词指创建一个资源和作为一个实体发送资源数据 (它可能是 JSON,XML,url 形式进行编码,或者不管是什么,但不理想的情况是在 URI 中作为查询字符串)。

赞助商