В данной публикации приведен пример того как выполнить асинхронный запрос к серверу без перезагрузки текущей страницы, с помощью JQuery на .NET Core.
Итак приступим.
Для начала нам потребуется создать проект Web сайта на .NET Core, например как здесь: https://babakov.net/programming/cs/138-cscorevs.html
Теперь модифицировать или создать новый контроллер Home с двумя методами:
Index — отображает страницу
GetInfo — обрабатывает запрос и возвращает ответ в формате JSON
Данная публикация написана как простая инструкция для себя, на память, чтобы не забыть.
Предложенный вариант использовался для авторизации через токен VK в серверном приложении.
Для начала создадим метод отправки HTTP запроса и получения ответа от сервера:
/// <summary>
/// Отправляем запрос на получение
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
private static string GetRequest(string host, string req)
{
string str = "";
var Vk = new HttpClient();
Vk.DefaultRequestHeaders.Add("Connection", "close");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(req);
request.UseDefaultCredentials = true;
request.PreAuthenticate = true;
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
request.Host = host;
request.UserAgent = "RM";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = false;
using (HttpWebResponse responsevk = (HttpWebResponse)request.GetResponse())
using (var stream = responsevk.GetResponseStream())
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
str = streamReader.ReadToEnd();
}
return str;
}
Для добавления поддержки CorsPolicy в .NET Core приложении открываем файл Startup.cs и меняем методы ConfigureServices и Configure, следующим образом:
ConfigureServices
public void ConfigureServices(IServiceCollection services)
{
// Добавляем CorsPolicy
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
Задать качество при сохранении изображения с использованием библиотеки SixLabors.ImageSharp можно следующим образом:
image.SaveAsJpeg(path_add, new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder { Quality = 100 });
В данном примере будет продемонстрировано, как сделать выпадающее меню выбора только месяца, без числа, с использованием bootstrap-datetimepicker.
Итак, для реализации задуманного нам понадобятся компоненты:
bootstrap — сам bootstrap
jquery — Библиотека JQuery
moment — Библиотека для работы со временем, в нашем примере будет использована moment-with-locales
bootstrap-datetimepicker — Библиотека выпадающего меню выбора даты
В дополнение, в примере будут использованы библиотеки respond.js и html5shiv.min.js для того, чтобы наша затея корректно отображалась и в IE.
В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML.
Отличие этой библиотеки OpenXML от Microsoft.Office.Interop.Excel в быстродействии которое на порядок выше.
Для работы с Excel документами необходимо установить расширение DocumentFormat.OpenXML из Nuget, оно позволит создавать Excel документы для версии Microsoft Office не ниже 2010.
Так-же для работы нам понадобится добавить в проект стандартную библиотеку WindowsBase, просто через Add References, без нее приложение не скомпилируется.
Ниже я приведу пример того, с чем работал сам, первоначальный вариант примера был найден где-то на просторах англоязычного интернета, переработан и теперь выглядит так — как выглядит, с моими комментариями и правками.
Пример демонстрирует формирование маленького Excel файла, который содержит тестовый текст в различных ячейках с применением разных стилей, как на изображении ниже:
Исходный код примера консольного приложения формирующего Excel на изображении выше:
В данной публикации приведен пример получения информации по пользователю в домене AD с использованием C#.
Для того чтобы всё заработало необходимо подключить библиотеку:
using System.DirectoryServices.AccountManagement;
Затем можно получать параметры по пользователю.
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
var loginName = HttpContext.User.Identity.Name.ToString();
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);
if (user != null)
{
// Получаем SID пользователя
var userSid = user.Sid;
// Получаем EMail пользователя
var userEmail = user.EmailAddress;
// Получаем Количество неудачных попыток входа пользователя
var userBadLogons = user.BadLogonCount;
// ФИО пользователя ( отображаемое имя)
var userName = user.DisplayName;
// Системное имя (по сути логин)
var userSamAccountName = user.SamAccountName;
var userFullName = String.Format("{0} {1} {2}", userName, userSamAccountName, userBadLogons);
ViewBag.Message = userFullName;
}
В предыдущей части мы рассмотрели установку Bottle:
Руководство по Python Bottle (Перевод) Часть 1 — Установка
В этой части мы пойдем дальше и рассмотрим простой пример приложения сайта «Hello World».
2. Простой пример («Hello World!»)
Здесь предполагается что у вас уже установлен Bottle, либо библиотека скопирована в папку проекта.
Начнем с очень простого примера «Hello World!»:
Это руководство познакомит вас с концепциями и возможностями фреймворка Bottle. Данное руководство можно читать от начала и до конца, как учебный материал для ознакомления. Также можно использовать руководство как справочник для ознакомления с интересующими особенностями фреймворка Bottle.
Данное руководство является адаптированным переводом информации с ресурса BOTTLEPY.ORG от 20.04.2017г.
В руководстве местами содержатся некоторые мои комментарии и дополнения. Поэтому, это не дословный перевод, но надеюсь достаточно качественный.
Итак, приступим.
В этой публикации продемонстрировано, как при помощи bootstrap и довольно простого кода на jаvascript сделать Web-страницу способную решать квадратные уравнения.
Здесь же будет приведен более интересный пример кода, который реализует очень простой онлайн калькулятор.
Вот как будет выглядеть наш калькулятор:
Итак, приступим…