Url.Action
принимает аргумент object? values
(последний). В него нужно передать параметры для обработчика MVC контроллера. Передавать в виде анонимного объекта.@foreach (var item in Model)
{
<tr onclick="location.href='@Url.Action("ViewOrder", "Home", new { id = item.Id })'">
<td>@item.Id</td>
<td>@item.CitySender</td>
<td>@item.AdressSender</td>
<td>@item.CityRecipient</td>
<td>@item.AdressRecipient</td>
<td>@item.Weight</td>
<td>@item.Date</td>
</tr>
}
public IActionResult ViewOrder(int id)
GRPC_STATUS_UNKNOWN
. В документации так и написано:Server threw an exception (or did something other than returning a status code to terminate the RPC)
var number = 1.123;
var russian = new CultureInfo("ru-RU"); // Россия
var american = new CultureInfo("en-US"); // США
Console.WriteLine($"Россия: {number.ToString(russian)}");
// Вывод: 1,123
Console.WriteLine($"Америка: {number.ToString(american)}");
// Вывод: 1.123
TryParse
и Parse
методы принимают в себя IFormatProvider
, который имеет информацию о локали (CultureInfo
)if (double.TryParse("123.123", russian, out var result))
{
Console.WriteLine($"Русский: {result}");
}
else if (double.TryParse("123.123", american, out result))
{
Console.WriteLine($"Американский: {result}");
}
else
{
Console.WriteLine($"Ни один не сработал");
}
// Выведет: Американский: 123,123
"Какой вид response лучше всего отправлять?"
С другой стороны, если я отправляю DTO на фронт, то фронтер должен сопоставить свой класс с моим, наверное, это тоже проблематично при большом количестве полей
Стоит ли вообще приводить response к массиву?
IBaseResponse
? В нем описание и статус код - они повторяют HTTP метод работы. Разницы между ними никакой. Это явное протекание абстракций. [Authorize]
атрибут из фреймворка для авторизации, но при этом не следуешь правилам, чтобы фреймворк понял, что клиент авторизован. Как минимум - откуда он узнает, что токен для авторизации находится именно в куках с именем token
?HttpContext
есть метод SignInAsync
. Этот токен нужно передавать туда, а не в куки. Дополнительно, нужно правильно настроить процесс авторизации.if (token is not null)
{
_httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
_httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
}