Я пытаюсь создать приложение, в котором я могу управлять клиентами. У всех моих клиентов есть свой клиент, которым я управляю. Итак, я создал базу данных с двумя таблицами tboClienti
для моих клиентов и tboSottoClienti
для моих «подчиненных клиентов».
Это структура таблиц:
Структура таблицы Clients - tboClienti и структура таблицы Under Clients - tboSottoClienti .
Я работаю над CRUD-операциями для моих «подчиненных клиентов», и я хотел создать раскрывающийся список, в котором я мог бы выбрать своего клиента и вставить информацию (имя, фамилия, компания, телефон) для моего подчиненного клиента .
Вот как я это себе представляю .
Я сделал модель контроллера и просмотрел для моего нижнего клиента, но я не знаю, как сделать список в моем Просмотр страницы Razor.
Это контроллер:
public class SottoClientiController : Controller
{
private readonly AppDbContext _db;
public SottoClientiController(AppDbContext db)
{
_db = db;
}
public IActionResult Index()
{
var datiSottoClienti = _db.tboSottoClienti.ToList();
return View(datiSottoClienti);
}
public IActionResult CreareLista()
{
ViewData["lstClieti"] = new SelectList(_db.tboClienti, "Id", "Nome_azienda");
return View();
}
public IActionResult CreareSottoCliente()
{
return View();
}
[HttpPost]
public async Task<IActionResult> CreareSottoCliente(SottoCliente sottoCliente)
{
if (ModelState.IsValid)
{
_db.Add(sottoCliente);
await _db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(sottoCliente);
}
}
Это класс модели:
public class SottoCliente
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Inserisci il nome di proprietario dell'azienda")]
[Display(Name = "Nome")]
public string Nome { get; set; }
[Required(ErrorMessage = "Inserisci il cognome di proprietario dell'azienda")]
[Display(Name = "Cognome")]
public string Cognome { get; set; }
[Display(Name = "Azienda")]
public string Azienda { get; set; }
[Required(ErrorMessage = "Inserisci il numero di telefono dell'azienda")]
[DataType(DataType.PhoneNumber)]
[Display(Name = "Telefono")]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$",
ErrorMessage = "Numero non valido")]
public string Cellulare { get; set; }
}
Я не знаю, как получить данные из table tboClienti
, чтобы вставить его в список. Таким образом, я могу выбрать клиента для своего нижнего клиента.
И это вид:
<h4>Under Client</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreareSottoCliente">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Azienda" class="control-label"></label>
<select asp-for="Azienda" class="form-control" asp-items="@ViewBag.lstClieti"></select>
<span asp-validation-for="Azienda" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Id" class="control-label"></label>
<input asp-for="Id" class="form-control" />
<span asp-validation-for="Id" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Nome" class="control-label"></label>
<input asp-for="Nome" class="form-control" />
<span asp-validation-for="Nome" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Cognome" class="control-label"></label>
<input asp-for="Cognome" class="form-control" />
<span asp-validation-for="Cognome" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Azienda" class="control-label"></label>
<input asp-for="Azienda" class="form-control" />
<span asp-validation-for="Azienda" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Cellulare" class="control-label"></label>
<input asp-for="Cellulare" class="form-control" />
<span asp-validation-for="Cellulare" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
Я вставляю свою строку подключения в appsettings.json
и добавляю ее в ConfigureServices();
.
И это класс для контекста базы данных:
public class AppDbContext: DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options): base (options)
{
}
public DbSet<Tecnico> tboTecnici { get; set; }
public DbSet<Cliente> tboClienti { get; set; }
public DbSet<SottoCliente> tboSottoClienti { get; set; }
}
Есть предложения, как получить данные из базы данных и вставить их в список?
Спасибо заранее!