Ответы пользователя по тегу ASP.NET
  • Как с помощью события onchange select, заполнить сразу 3 input?

    @kttotto
    пофиг на чем писать
    На сервере
    <select id="select">
    	<option selected="selected">Выберите город</option>
    	@foreach (var b in ViewBag.cities)
    	{
    		<option value='@JsonConvert.SerializeObject(b)'>@b.Name</option>
    	}
    </select>

    На клиенте
    $('#select').change(function(){
    	var $val = $(this).find('option:selected').val();
    	if(!$val) return;
    	var obj = JSON.parse($val); // здесь js объект с вашими полями
    	// и здесь его можно обработать и заполнить свои инпуты
    	var t_ext = obj.T_ext;
    	var t_ht = obj.T_ht;
    	var z_ht = obj.Z_ht;
    
    	$('input#T_ext').val(t_ext);  // Добавил исходя из Ваших комментариев других ответов
    	$('input#Zht').val(t_ht);
    	$('input#Tht').val(z_ht);
    });
    Ответ написан
    6 комментариев
  • Есть ли польза в частичном переходе с EntityFramework на sql запросы?

    @kttotto
    пофиг на чем писать
    Для оптимизации - имеет смысл, это действительно ускорит сложные запросы. Разницы нет, сколькими способами Вы будете доставать данные из бд в контроллере. Сборка загрузится один раз, и если она будет висеть без дела, погоды это не сделает. Вы можете сделать дополнительную прослойку Репозитория между бд и контроллером и внутри наделать методов которые будут хоть через EF, хоть через ADO.NET, или еще через что доставать данные.
    Ответ написан
    Комментировать
  • Как передавать данные между контроллерами и представлениями?

    @kttotto
    пофиг на чем писать
    Изучите подробно концепцию MVC и зачем она нужна. Данные должны ходить от контроллера к представлению для отображения и с представления на контроллер. Больше никак. Никаких между представлениями и между контроллерами.
    Если Вы хотите хранить общие данные для всех представлений, то сохраняйте их либо в сесии (на стороне сервера), либо в куках (на стороне клиента). А index будет читать эти данные, например из куков и отображать в лайауте.
    Ответ написан
    Комментировать
  • Как решить проблему, не видит метод контроллера?

    @kttotto
    пофиг на чем писать
    Зачем Вы дублируете вопросы?
    Перейдите по ссылке localhost:17224/api/values/PostClientIdInController просто в строке браузера. Если попадете в свой контроллер, то он просто считает Ваш метод как Get. Над методом поставьте атрибут [HttpPost] и будет Вам счастье.
    Ответ написан
    Комментировать
  • Как решить проблему, не видит метод контроллера valuescontroller?

    @kttotto
    пофиг на чем писать
    Лучше сделайте через атрибут [HttpPost], а не приставку Post. По видимому он метод считает как Get, вот и не видит.
    Ответ написан
    Комментировать
  • Почему в контроллер не передаются данный?

    @kttotto
    пофиг на чем писать
    Попробуйте так
    public ActionResult Index([FromBody] string stat)
    Ну и конечно отправляться должен объект data: { stat: "Hello" }
    Ответ написан
    Комментировать
  • Как сделать циклический запрос к базе данных?

    @kttotto
    пофиг на чем писать
    Небольшие замечания:
    1. Перед тем как копировать сюда код, лучше его скопипастить в блокнот, там его отформатировать (удалить слева лишние табы), а потом только из блокнота копипастить сюда. Тяжело воспринимать плохо отформатированный код, особенно когда его много.
    2. Очень тяжело читать код с непонятными наименованиями. Лучше придерживаться традиции именования на нормальном английском языке. Закрепите в браузере страницу с гугл переводчиком и при необходимости перевести на английский - дело пары секунд. Никаких сокращений, поля в моделях - только первая буква большая. Некоторые наименования я так и не понял, что Вы ими обозначили.
    3. Преподаватель предмета, это пользователь, значит и привязывать надо не по его имени, а по его Id. Вместо
    var jlist = db.Jpredmets.Where(j => j.PREPODIIN == User.Identity.Name).ToList();

    лучше
    var lessons = db.Lessons.Where(j => j.TeacherId == User.Id).ToList();

    4. Дальше пытаюсь разобраться, что и как Вы хотите найти
    var pr = db.Jpredmets.FirstOfDefault(gr => gr.ID == id).GR;

    Что такое GR я так и не понял. Можно подумать, что сущность группы, но он string. Имя группы? Каждый предмет привязан к конкретной группе?

    Мой вариант как должно быть
    var group = db.Lessons.Find(l => l.Id == id).Group;

    где Group - сущность, которая связана с lesson как один-ко-многим. Примерная модель
    public class Group
    {
    	public int Id { get; set; }
    	public string Name { get; set; }    // название группы
    	public ICollection<Lesson> Lessons { get; set; }    // предметы
    	public ICollection<Learner> Learners { get; set; }  // ученики
    }

    var kont = db.Kontingents.Where(k => k.GRUPPA == pr).ToList();

    Что такое kontingents? Ученики? Тогда мой вариант выглядел бы так
    var learners = db.Learners.Where(k => k.GroupId == group.Id);

    var jocenki = db.Jpredmets.Include(t => t.Jjours).FirstOrDefault(t => t.ID == id);

    Чтотако Jjours я даже интуитивно догадаться не смог. Судя по модели, это сущность которая хранит в себе оценку, дату, когда ее поставили и т.д. Но результат Вы назвали jocenki, а оценок там не будет. Там будут предметы в которых сразу же будут подтянуты данные о Jjours. И вы опять находите предмет, который уже нашли, когда искали группу. Можно было сделать так
    var lesson = db.Lessons.Find(l => l.Id == id).Include(t => t.Jjours);
    var group = lesson.Group;

    Дальше я предполагаю, что должно быть так
    var jour = new Journalsliv();
    jour.Learners = learners;
    jour.Jjoursliv= group.Jjours;

    Это все можно было упростить, сделав так
    var group = db.Lessons.Find(l => l.Id == id).Include(t => t.Jjours).Group;
    var jour = new Journalsliv
    {
    	Learners = db.Learners.Where(k => k.GroupId == group.Id).ToList(),
    	Jjoursliv = group.Jjours.OrderBy(j => j.Date).ToList()  // на всякий случай сортируем по дате
    }

    5. Ну и по выводу на клиенте. Я не знаю, как у Вас в задании, но выводить даты в ширину, это будет жестоко, если их надо будет вывести за достаточно длительный период. В общем дат может быть бесконечно, а кол-во учеников всегда ограничено. Я бы сделал наоборот: ученики - поля (в ширину), а даты - записи ( в длину).

    Ну и главная ошибка у Вас в этом коде
    @foreach (var roc in Model.Jjoursliv)
    {
        <tr>
            <td>@roc.IIN</td>
            @foreach (var roc2 in Model.Jjoursliv)
            {
                <td>@roc2.OCENKA</td>
            }
        </tr>
    }

    Мне совсем не понятна логика хранения оценок, раз Вы пытаетесь их таким способом достать. Судя по Вашему коду Jjoursliv это коллекция Jjour, а Jjour - это одна оценка для одного ученика. И кодом выше Вы для каждого ученика выводите оценки других учеников, т.е. для каждого вы выведе одну и туже последовательность оценок других учеников, вот они у Вас и выглядят одинакого.
    Вам нужно сначала сгруппировать все оценки по имени
    var learners = Model.Jjoursliv.GroupBy(j => j.IIN)
    Так Вы получите коллекцию учеников, которая будет сосотоять из коллеции оценок.
    И тогда это можно вывести так
    @foreach (var learner in learners)
    {
        <tr>
            <td>@learner.First().IIN</td>
            @foreach (var jour in learner)
            {
                <td>@jour.OCENKA</td>
            }
        </tr>
    }

    Резюмируя, хочу порекомендовать: разобраться повнимательней что делает Include и как работает ToList() и в каких случаях он нужен; пересмотреть структуру бд, есть ошибки, поэтому возникли сложности с пониманием как нужно делать выборку.
    Ответ написан
  • Как заполнить таблицу с помощью ajax?

    @kttotto
    пофиг на чем писать
    На всякий случай проверил примеры здесь и здесь и все таки не нашел там второго параметра "name" как у Вас
    { data: "StudentGroupNumber", name:"StudentGroupNumber" },

    И я обычно добавляю <tbody></tbody>, так надежнее)
    Ответ написан
    Комментировать
  • Насколько готов к продакшену asp.net core?

    @kttotto
    пофиг на чем писать
    Что такое "реальные задачи"?
    В нашей конторе уже два немаленьких проекта сдали реализованные на asp core. Но работают они правда на .net 4.61, стабильно и уверенно. Я пока еще не сталкивался с проблемами в нем, чтобы сказать, что сырой. Как по мне, то он дает гораздо больше возможностей в работе, чем mvc5.
    Ответ написан
    Комментировать
  • Как выбрать уникальные значение из результатов поиска?

    @kttotto
    пофиг на чем писать
    db.Library.Where(x => x.FIO == "Антонов Антон Антонович").GroupBy(x => x.KNIGI).Select(x => x.First())
    Ответ написан
  • Доставка push - уведомлений через Web - интерфейс?

    @kttotto
    пофиг на чем писать
    Не совсем понятен вопрос.

    Если используется web froms, значит он должен отдавать html странички, значит там можно использовать js со всеми вытекающими, например использовать SignalR. Первое, что нагуглилось
    Can SignalR be used with asp.net WebForms?
    Добавление SignalR в проект ASP.NET WebForms

    Но даже если Вы пишете отдельное приложение под андроид на xamarin, то тоже гуглится куча вариантов. Вот первый SignalR xamarin
    Ответ написан
  • Как сохранить данные со связью многие ко многим?

    @kttotto
    пофиг на чем писать
    EF самостоятельно создает промежуточные таблицы при отношении многие ко многим. Вам достаточно указать эту связь между таблицами Project и Person. Руками делать их нет необходимости.
    Ответ написан
    2 комментария
  • ASP.NET MVC. Сколько памяти потребляет стандартное приложение в нормальных условиях?

    @kttotto
    пофиг на чем писать
    Странно поставлен вопрос. Что значит стандартные условия и нормальное приложение? То, что Вы стек перечислили, ничего не говорит.
    У Вас есть какая то логика, эта логика создает объекты. Вы грузите данные, эти данные занимают оперативку в памяти. Какого размера объекты, сколько их, какого размера данными Вы оперируете? Вот на это и смотрите. Избегайте лишних алокаций, следите за большими объектами (больше 85 000 байт), в случае чего вовремя вызывая чистку GC.
    Ответ написан
    Комментировать
  • Как часто приходится использовать built-in хелперы в asp.net?

    @kttotto
    пофиг на чем писать
    Юзают, нужная фича.
    Первое, например тот же select. Толи его руками заполнять каждый option, толи в одну строчку вложиться.
    Второе, это все-таки какая-то типизация разметки данными. Чем меньше твоей ответственности в заполнении разметки данными, тем меньше шансов на ошибку, особенно при последующих изменениях. Поэтому в нужном случае я даже для<a>буду использовать asp тег.
    Ответ написан
    Комментировать
  • ASP.NET MVC 4 перед MVC 5?

    @kttotto
    пофиг на чем писать
    Если просто начать, понять принцип - не большая. Если писать проект - большая. Для изучения стоит смотреть минимум на MVC 5. Но я бы посоветовал сразу asp core.
    Ответ написан
    Комментировать
  • Как работать с базой данных ASP.NET MVC?

    @kttotto
    пофиг на чем писать
    Подключаться надо не к существующей таблице, а к существующей бд. Для этого надо в файле web.config указать в conectionstring путь к бд и соответствующий ей логин/пароль. Если conectionString укажете правильно, то будет соединение с ней. Только еще учтите, что все модели-сущности у Вас должны быть заранее реализованы под эту бд и соответствовать ее схеме.

    Если нужно работать с двумя бд, то создаете два контекста, каждый со своим conectionString к бд.

    Если имеется в виду, что в новой бд руками создали таблицу и заполнили данными, а бд создает ее новую и чистую, значит, где-то ошибка или в имени таблицы, или в том как Вы ее указали в DbSet.
    Ответ написан
  • Как работать верстальщику со сложным ASP.NET проектом на TFS?

    @kttotto
    пофиг на чем писать
    В этом проблема монолита, как он будет править верстку не запуская проект? cshtml это ж не html, браузер о razor ничего не знает. Без запуска проекта, думаю, не обойтись. Поэтому либо виртуалка, либо локально. Виртуалку Вы не хотите, значит вариант только ставить локально, а бд можно удаленную тестовую подключить.

    У нас верстальщики по RDP работают. Минус, конечно, привязка к инету.
    Ответ написан
    Комментировать
  • Visual Studio - JavaScript Отладчик не останавливается на точках в MVC-View (.cshtml файл), как включить отладку во вьюхах?

    @kttotto
    пофиг на чем писать
    Отключить прекомпиляцию вьюшек или ставить брекпоинты до начала сборки и запуска.
    Ответ написан
  • Как начать проект на asp.net?

    @kttotto
    пофиг на чем писать
    Metanit
    Все кратко и по делу, как конспект.
    Ответ написан
    Комментировать
  • Как добавить модель в asp.net mvc?

    @kttotto
    пофиг на чем писать
    Для выпадающий списков в MVC есть хелперы Html.DropDownList и Html.ListBox. Первый для одиночного выбора, второй для множественного. В модели, которую передаете на вьюшку, передаете поле с коллекцией SelectList и поле для выбранного значения (Selection). Вы, я так понимаю, коллекцию передали через вьюбэг, вот поля под выбор нет.
    А дальше сам список создаете через хелпер
    @Html.DropDownList(x => x.Selection, Model.Items)
    При отправке формы выбранное значение уйдет в Selection.
    Если же Вы используете Core, то там tag-хелперы.

    Здесь в ответе есть пример.
    Ответ написан
    Комментировать