Я создал бы подкласс NSFormatter для парсинга временных стоимостей в том формате от входных данных (можно поместить один на текстовое поле, чтобы автоматически преобразовать ввод данных пользователем или использовать его для парсинга от источника данных в коде). Имейте его, возвращают объединенное число секунд как NSTimeInterval (дважды представляющий секунды) обернутый в NSNumber. Оттуда легко вычесть различие и отобразить его с помощью того же класса NSFormatter, который Вы создали. И в парсинге и в отображении значений, Вы - одно ответственное для записи преобразования кода с секунд к hours:minutes:seconds или безотносительно формата, который Вы любите. Вы могли также преобразовать эти значения в NSDate как упомянутый mouviciel, если он имеет смысл для Вашего приложения. Просто имейте в виду, что Вы всегда собираетесь быть хранением разницы во времени со ссылочной даты, обычно Jan 1-й 1970 (NSDate имеет методы, чтобы сделать это для Вас).
Если это небольшое изображение, вы должны вывести его как данные в кодировке base64 в тег изображения. См. Здесь аналогичную ситуацию .
Но в 99,9% всех ситуаций вы должны создать HttpHandler, который возвращает изображение. Я думаю, это самый простой и быстрый способ сделать это.
Оберните массив байтов в объект MemoryStream и поместите его в кэш ASP.NET.
MemoryStream ms = new MemoryStream(user.Picture.ToArray());
Guid imageGuid = new Guid();
HttpRuntime.Cache.Add(imageGuid.ToString(), ms, null,
DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
Затем используйте обработчик (.ashx), чтобы извлечь его из кеша и отправить его в client.
string imageGuid = context.Request.QueryString[image];
MemoryStream ms = (MemoryStream)HttpRuntime.Cache[imageGuid];
// configure context.Response with appropriate content type and cache settings
// ** Edit **
// It seems I need to be more explicit with regard to the above comment:-
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetLastModified(DateTime.UtcNow);
context.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(2);
context.Response.Cache.SetMaxAge(TimeSpan.FromHours(2));
context.Response.Cache.SetValidUntilExpires(true);
ms.WriteTo(context.Response.OutputStream);
Теперь вы можете удалить MemoryStream из кеша.
HttpRuntime.Cache.Remove(imageGuid);
создать отдельную страницу, на которой вы создадите изображение, например: image.aspx и использовать его на других страницах
<img src="image.aspx?id=number" >
номер - это идентификатор изображения в базе данных
Вам понадобится IHttpHander
, который будет записывать байты изображения и собственно Content- Введите
в поток ответа. См. это , это и это .
Я почти уверен, что вы не можете сделать это на самой странице.
Если вы не хотите создавать обработчик HTTP для вывода изображения, то альтернативой является создать отдельную страницу aspx
. Установите src
вашего тега img
так, чтобы он указывал на эту страницу, передав какой-то идентификатор в строке запроса, чтобы данные изображения можно было извлечь из базы данных.
Сказав это, что настройка страницы aspx
для этого не быстрее и не проще, чем настройка ashx
. Я бы порекомендовал сделать это правильным способом и создать обработчик HTTP.