Во-первых, классы должны быть существительными в соответствии с Соглашениями Microsoft о присвоении имен , поэтому я бы переименовал Клиентов в Клиента.Как вы сказали, у вас нет проблем с базой данных, я сосредоточусь на контроллерах и представлениях.
Список клиентов
Следующее действие в вашем клиентском контроллере вернет список клиентов из вашей базы данных в представление:
// GET: CV_Website/Clients/ClientList
[HttpGet]
public ActionResult ClientList()
{
//using statement disposes the connection to the database once query has completed
using (var context = new ClientContext())
{
//.ToList runs the query and maps the result to List<Client>
var clients = context.Clients.ToList();
}
//Return view with list of clients as the model
return View("ClientList", clients);
}
Просто щелкните правой кнопкой мыши в любом месте этогометод и выберите Добавить вид, чтобы создать вид.
Если вы выберете «Список» в качестве шаблона и «Клиент (CV_Website.Models)» в качестве класса Model, он создаст представление, в котором перечислены подробности для каждого клиента в списке.В представлении вы можете увидеть следующие строки кода:
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
Это URL-адреса, которые указывают на действия в вашем контроллере.
Редактировать клиент
Например, вот реализация для Edit:
//Added third parameter to clearly point to 'Client' controller
@Html.ActionLink("Edit", "Edit", "Client", new { id=item.ID })
Этот URL-адрес указывает на действие с именем Edit в клиентском контроллере, которое будет читать другоеВид с именем «Редактировать».Реализация будет выглядеть примерно так:
// GET: CV_Website/Clients/Edit/1
[HttpGet]
public ActionResult Edit(int id)
{
using (var context = new ClientContext())
{
//Using Linq, select the client with the matching ID or return null
var client = context.Clients.SingleOrDefault(c => c.Id == id);
}
return View("ClientList", client);
}
Еще раз щелкните правой кнопкой мыши и выберите Добавить представление.На этот раз снова выберите шаблон «Редактировать» и модель клиента.
Это создаст представление с формой, которую можно отправить в контроллер.Чтобы улучшить читабельность, я бы написал оператор using следующим образом:
@using (Html.BeginForm("Edit", "Client", FormMethod.Post))
Реализация действия Edit будет выглядеть примерно так:
// POST: CV_Website/Clients/Edit/{Client}
[HttpPost]
public ActionResult Edit(Client client)
{
using (var context = new ClientContext())
{
//Get client from database
var clientInDb = context.Clients.SingleOrDefault(c => c.Id == client.ID);
//Update client using properties from the client parameter
clientInDb.Age = client.Age;
clientInDb.Gender = client.Gender;
clientInDb.Name = client.Name;
clientInDb.Surname = client.Surname;
//Commit changes to the database
context.SaveChanges();
}
return View("ClientList", client);
}
Это обновит клиента в базе данных.и сохраняет изменения.Надеюсь, это поможет вам начать работу.
Подробнее о DbContext здесь