Ответы пользователя по тегу ASP.NET
  • Как решить данную ошибку?

    @kttotto
    пофиг на чем писать
    В тексте ошибки все написано: несовпадение типов. Ожидается один тип, а присвоить пытаетесь что-то другое.
    obj.allRealty = _allRealty.Realty;
    Здесь obj.allRealty имеет типIEnumerable<Realty>, а какой тип имеет allRealty.Realty из Вашего кода непонятно.

    Но мне кажется, что Вам это мало о чем говорит, раз этот код для Вас "темный лес", а дебажить за Вас его никто не будет.
    Ответ написан
    2 комментария
  • А нужно ли знать Razor Pages?

    @kttotto
    пофиг на чем писать
    Не все проекты делаются на js фреймворках, во многих asp проектах он еще используется, не как основа, скорее как дополнение к js на странице. Если собираетесь работать в стеке asp, то мимо razor всеравно не пройдете.
    Ответ написан
    Комментировать
  • ASP NET Core почему Ajax POST всегда null?

    @kttotto
    пофиг на чем писать
    Вы в запросе передаете объект у которого есть поле team со значением test. А контролер принимает не объект, а просто значение. Поэтому в параметрах запроса можно просто отдать значение data: test. Или в контроллере переделать параметр на объект
    class Param { string team }
    AddTeam(Param team)
    Ответ написан
  • Как сделать поиск по дате в ASP.Net MVC 5?

    @kttotto
    пофиг на чем писать
    Поиск по дате должен идти по диапазону или точному совпадению

    allOrdersByDate = db.Orders.Where(a => a.Date >= dateFrom && a.Date <= dateTo)
    
    allOrdersByDate = db.Orders.Where(a => a.Date == date)
    Ответ написан
  • Как добавить данные в базу при создании?

    @kttotto
    пофиг на чем писать
    Связь указывается либо через атрибуты, либо через fluent api, это легко гуглится. У Вас связь одни ко многим, один сервис имеет много категорий, поэтому EF при создании таблиц добавит поле ServiceId в таблицу Category. По-видимому, Вам надо явно указать туда id сервиса для связи данных, для этого в модель Category это поле нужно добавить.
    Ответ написан
    Комментировать
  • Где проводить обработку ошибок и логирование в трехслойной архитектуре?

    @kttotto
    пофиг на чем писать
    Обработку ошибок делаете там, где Вы не хотите пропустить ее выше по уровню.
    Логирование ошибок - чем выше уровень, тем длиннее стектрейс, а значит лучше понятна цепочка вызовов при возникновении ошибки.
    Ответ написан
    Комментировать
  • Правильная архитектура при построение Web приложения?

    @kttotto
    пофиг на чем писать
    Архитектура никак не зависит от стека.
    5e6ddff504334597793261.png
    Где здесь, хоть что-то указывает на стек?
    При "правильной архитектуре" каждая часть может быть написана на чем угодно (в пределах разумного, конечно) и все будет работать как часы.
    Ответ написан
    Комментировать
  • Как побороть ошибку преобразования?

    @kttotto
    пофиг на чем писать
    В Вашем случае i это отложенный сложный запрос/выборка, еще невыполненный. Вы пытаетесь его преобразовать в другой тип. Попробуйте его, на всякий случай, сначала закрыть ToList(), а затем преобразовать его либо через Select, либо через Cast. В принципе, если внутри запроса ничего сложного нет, то можно и не делать ToList().
    Ответ написан
    Комментировать
  • Как проверить на null Vue.JS из Модели ASP.Net?

    @kttotto
    пофиг на чем писать
    Судя по тому, что Вы хотите сделать split, предполагаю, что Model.Tags имеет тип string.
    Тогда, как вариант, можно сделать так
    addTags: function() {
    	this.tags = @Json.Serialize(Model?.Tags?.Split(',') ?? []);
    }


    Ошибка в этой строке
    if(@Model != null && @Model.Tags != null)
    потому, что @Model приведется к string в разметке, а @Model.Tags вставится как строка как есть. И в разметке выйдет что-то такое
    if(System.Object != null && tag1,tag2,tag3 != null) { ... }

    Ну и понятно, что такая разметка в браузере даст ошибку. Поэтому, перед тем как вставить модель в разметку js, лучше делать сериализацию к json. Ну либо делать как-то так
    if('@(Model?.Tags ?? "")'.length > 0) { ... }
    Ответ написан
    Комментировать
  • Как передавать данные в контроллер??

    @kttotto
    пофиг на чем писать
    Думаю, что проблема в
    JSON.stringify(books)
    т.к. по сути этой строкой Вы отправляете string, а не объект. Несовпадение типа, он его и не видит.
    Если хотите в методе объект принять, не нужно его к строке преобразовывать, можно просто
    data: books,
    Но что-то мне подсказывает, что в Вашем варианте и здесь могут быть проблемы. Зачем Вы принимаете JObject?
    Преобразуете его потом, примите его как есть массивом
    public async Task<JsonResult> Settings(object[] books)

    А еще лучше, типизируйте как положено, ну а затем сделаете что-то вроде JObject.FromObject(books).

    PS:
    а метод Settings возвращает ошибку не выполняя метод.

    В таких случаях хорошо бы и текст ошибки к вопросу прикладывать.
    Ответ написан
    Комментировать
  • EF Core Загрузка трёх и более сущностей. Как правильно?

    @kttotto
    пофиг на чем писать
    1.
    Есть просто номер, который соответствует id в таблице Скана.

    Где есть номер, в какой таблице? Какая-то же связь должна быть между сотрудником и договором? Иначе просто будет невозможно соотнести запись договора с записью сотрудника.

    2. Не лучшее решение на вьюшку отдавать entity сущность. Лучше добавить модель DetailsViewModel, которую Вы заполните данными как хотите. Например
    var detailsViewModel = db.employees.Include(ep => ep.Position)                
    			.Where(j => j.Id == id)
    			.Select(emp => new EmploeeViewModel
    			{
    				Name = emp.Name,
    				Position = emp.Position,
    				Сontract = db.Contract.FirstOrDefault(c => c.Id == emp.ContractId)
    			}.FirstOrDefault();
    			
    return View(detailsViewModel);
    Ответ написан
    1 комментарий
  • Как передать массив из c# в javascript?

    @kttotto
    пофиг на чем писать
    Судя по тэгу Вы хотите это сделать в ASP MVC приложение.
    Там есть вариант сделать это на вьюшке с помощью Razor

    <script>
    	var model = @Json.Serialize(Model.yourArray);
    	
    	var model2 = @Html.Raw(JsonConvert.SerializeObject(Model.yourArray));
    	
    	var model3 = [@Model.yourArray[0], @Model.yourArray[1], @Model.yourArray[2]]
    </script>
    Ответ написан
  • Почему не отображаются данные ReactJs??

    @kttotto
    пофиг на чем писать
    А где Ваш аякс запрос для получения данных? Подозреваю, что передачи в компонент параметра url getUrl="/Employee/Get" маловато. Url Вы передали, а дальше нужно сделать метод load, в котором аяксом будут подтягиваться данные. А затем при маунте компонента этот метод load вызвать.
    componentDidMount() {
            this.loadData();
        }

    Смотрю, что здесь нормально все описано.
    Ответ написан
    Комментировать
  • Как правильно выполнять регулярные операции на сайте при использовании слотов?

    @kttotto
    пофиг на чем писать
    Тут вариантов особо нет, как только использовать внешний для обоих приложений, но общий для них store: бд, просто файл на диске, сторонний сервис, дергая который будет проверятся последнее время запуска задачи.
    Ответ написан
    Комментировать
  • Тенденции рынка труда для ASP.NET CORE разработчиков?

    @kttotto
    пофиг на чем писать
    Да, так и есть. Если планируете в веб разработку, то придется хоть в каком то виде и в фронт-енд разбираться.
    Ответ написан
    Комментировать
  • Как изолировать выполнение кода несколькими потоками?

    @kttotto
    пофиг на чем писать
    Первое, если OrderService не будет резолвится как синглтон, то на каждый запрос будет создваться свой инстанс сервиса, т.е двух потоков на один метод не будет.

    Второе, если он резолвится как синглтон, то у Вас проблемы, т.к. внутри dbContext будет один для всех запросов, а его лучше создавать по новой для каждого запроса.

    Третье, чтобы не было двух одновременных запросов с одного клиента, надо дизейблить кнопку и показывать прелоадер до получения ответа.

    Ну и четвертое, если хотите получить баланс до того как другой запрос туда что-то добавит, то в AddOrder используйте транзакции с достаточным уровнем блокировки на изменение.
    Ответ написан
    3 комментария
  • Как убрать отслеживание объекта при сохранении?

    @kttotto
    пофиг на чем писать
    Всего скорей, Вы руками создали объект routeSave с айдишником, который уже есть в базе и пытаетесь его добавить. Если Вы хотите изменить существующий объект, то его сначала надо получить, но только не вот так, как Вы это делаете
    .ToList()[0]
    а так
    _dbContext.Routes.FirstOrDefault(a => a ...
    Ответ написан
    Комментировать
  • Как правильно формировать Post запрос?

    @kttotto
    пофиг на чем писать
    Зачем Вы json преобразуете в строку? Получается, что метод видит только одну строку и из запроса не видит параметры. Достаточно так
    data: {
            search: $('#search-top').val(),
            time: $(".sorting:checked").val()
          }
    Ответ написан
    Комментировать
  • Как обновить данные, возвращаемые представлением в контроллер?

    @kttotto
    пофиг на чем писать
    Вам нужно изучить жизненный цикл ASP MVC, чтобы понять, что экземпляр контроллера живет ровно от запроса - до ответа. При каждом новом запросе создается новый экземпляр контроллера, это значит, что
    void ActionResult Index(Options options)
    {_options = options }

    смысла не имеет, при новом запросе _options будет пустой, даже если не будет параметра у конструктора.

    Если хотите сохранять какие то настройки через ActionResult Index(Options options), то заведите глобальный статический класс для хранения каких то параметров для всех запросов. Если эти настройки индивидуальны для каждого пользователя, то можно хранить их в сессиях.
    Ответ написан
    Комментировать