小编Mar*_*nes的帖子

ASP.net Web API中MVC的DefaultModelBinder的等价物是什么?

我想在ASP.Net Web API中创建一个自定义模型绑定器.有关如何从头开始执行此操作的大量资源,但我想利用现有功能.

我在codeplex中查看了源代码,可以在那里看到大量的模型绑定器,但大多数是密封的......即使这样,我也无法确定在哪种情况下使用哪一个.

这是我的api方法标题:

public async Task<HttpResponseMessage> Post(long appId, [FromBody]Field field)
Run Code Online (Sandbox Code Playgroud)

我想要做的是基本上在填充所有基本属性后拦截模型绑定器,然后根据我将在客户端设置的http请求标头设置一些额外的值.

正如我所说,我很乐意创建自定义模型绑定器和模型绑定器并将它们连接起来,我遇到问题的是试图重用现有的功能.

谢谢,皮特

c# rest model-binding asp.net-web-api

21
推荐指数
1
解决办法
6395
查看次数

流式传输音频文件并缓存它

我想流式传输一个音频mp3文件然后通过Android媒体播放器播放它我还想缓存这个文件,这样媒体播放器就不必为最近播放的曲目流播放了.

我尝试过使用prepareAsync方法,但它不允许我访问缓冲区内容,因此我决定自己流式传输音频文件,然后将其传递给媒体播放器进行播放.我已经通过这篇文章来实现这一点,但这种方法存在一个问题,即在将文件传输到媒体播放器时,它会进入错误模式,导致我的播放器表现不一致.

当媒体播放器进入其错误模式时,它不会自动退出,因此我被迫创建一个新的媒体播放器,然后重新提供下载的文件,这种解决方法会导致用户在播放歌曲时遇到不希望的暂停.

那么,是否有人改进了上述链接中给出的代码版本?或者他们是否知道这个问题的更好的解决方案,或者实际上有一个用于在Android中传输音频文件的库?

谢谢

android caching audio-streaming android-mediaplayer

13
推荐指数
1
解决办法
5439
查看次数

UriPathExtensionMapping控制WebAPI中的响应格式

我在使用ASP.NET WebAPI中的UriPathExtensionMapping时遇到问题.我的设置如下:

我的路线是:

            config.Routes.MapHttpRoute(
                name: "Api UriPathExtension",
                routeTemplate: "api/{controller}.{extension}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            config.Routes.MapHttpRoute(
               name: "Api UriPathExtension ID",
                routeTemplate: "api/{controller}/{id}.{extension}",
                defaults: new { id = RouteParameter.Optional }
            );

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
Run Code Online (Sandbox Code Playgroud)

我的全局ASAX文件是:

    AreaRegistration.RegisterAllAreas();

    WebApiConfig.Register(GlobalConfiguration.Configuration);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
Run Code Online (Sandbox Code Playgroud)

我的控制器是:

public IEnumerable<string> Get()
{
    return new string[] { "Box", "Rectangle" };
}

// GET /api/values/5
public string Get(int id)
{
    return "Box";
}

// POST /api/values
public void …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api asp.net-web-api-routing

3
推荐指数
1
解决办法
4094
查看次数