Я хочу получить имя из выбранного идентификатора на моей странице просмотра
Первая модель
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);
Попробуй это:
Определите переменную целочисленного типа в модели 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");
Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.