Как автоматически добавить имя из выбранного идентификатора на странице просмотра с контроллера ASP.NET MVC

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

Первая модель

public class Transaction
{
    [Key]
    public int Id { get; set; }
    [Required]
    public int supplier_id { get; set; }
    [Required]
    public string supplier_name { get; set; }
}

Вторая модель

public class Supplier
{
    [Key]
    public int supplier_id { get; set; }
    [Required]
    public string supplier_name { get; set; }
}

Посмотреть модель

public class EvaluateSheet
{
    public IEnumerable<Supplier> Suppliers{ get; set; }
    public IEnumerable<Transaction> Transactions { get; set; }
    public Transaction Transaction { get; set; }
}

Контроллер

public IActionResult Sheet11()
    
    {
        var sup = _db.Supplier.ToList();
        ViewBag.Sup = new SelectList(sup, "supplier_id", "supplier_name");
        return View();
    }
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Sheet11(EvaluateSheet objc)
    {
           Transaction Model = objc.Transaction;
           Transaction transaction = new Transaction();
           transaction.Id = Model.Id;
           transaction.supplier_id = Model.supplier_id;
           transaction.supplier_name = Model.supplier_name;
           _db.Transaction.Add(Model);
           Model.supplier_name = Model.Supplier.supplier_name.Where(Model.Supplier.supplier_id == Model.supplier_id);
           _db.SaveChanges();
           return RedirectToAction("Index");
    }

Просмотр страницы

@model EvaluateSheet 
<form method = "post">
<select asp-for = "@Model.Transaction.supplier_id" asp-items = "@ViewBag.Sup" value = "@ViewBag.Sup" class = "form-control">
                    <option selected disabled>--choose supplier--</option>
</select>
<button type = "submit" class = "btn btn-primary">Add Transaction</button>

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

Model.supplier_name = Model.Supplier.supplier_name.Where(Model.Supplier.supplier_id == Model.supplier_id);
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это:

Определите переменную целочисленного типа в модели EvaluateSheet для example("public int Sup_id { get; set; }") и пометьте ее тегом DropDownListFor.

В контроллере выберите конкретные данные из таблицы поставщиков с помощью нового определения int Sup_id и скопируйте эти данные в Model(Transaction).

Например:

Transaction Model = new Transaction();
            Supplier supl = null;
            supl = _db.Supplier.Where(x => x.supplier_id == objc.Sup_id).FirstOrDefault();
            Model.supplier_id = supl.supplier_id;
            Model.supplier_name = supl.supplier_name;
            _db.Transaction.Add(Model);
            _db.SaveChanges();
            return RedirectToAction("Index");
        

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Jeremy Caney 07.05.2022 04:16

Другие вопросы по теме