Я использовал Entity Framework для генерации моего контроллера и просмотра для моего класса.
Вот что у меня есть:
DemandeController.cs
(контроллер):
public ActionResult Create()
{
Demande model = new Demande();
model.date = DateTime.Now;
model.status = "en cours";
Employe emp = (Employe)Session["currentUser"];
model.Employe = emp;
ViewBag.ServiceID = new SelectList(db.Services, "id", "nom");
ViewBag.EmployeID = new SelectList(db.Employes, "matricule", "nom");
return View(model);
}
Demande -> Create.cshtml
(Просмотреть)
<div class="editor-label">
@Html.LabelFor(model => model.EmployeID, "Employe")
</div>
<div class="editor-field">
@Html.DropDownList("EmployeID", String.Empty)
@Html.ValidationMessageFor(model => model.EmployeID)
</div>
Employe
класс:
public partial class Employe
{
public Employe()
{
this.ActivityLogs = new HashSet<ActivityLog>();
this.Demandes = new HashSet<Demande>();
}
public int matricule { get; set; }
public int DepartementID { get; set; }
public string nom { get; set; }
public string prenom { get; set; }
public string telephone { get; set; }
public string adresse { get; set; }
public string fonction { get; set; }
public string username { get; set; }
public string password { get; set; }
public string role { get; set; }
public Nullable<bool> isAdmin { get; set; }
public virtual ICollection<ActivityLog> ActivityLogs { get; set; }
public virtual ICollection<Demande> Demandes { get; set; }
public virtual Departement Departement { get; set; }
}
Demande
класс:
public partial class Demande
{
public int id { get; set; }
public int EmployeID { get; set; }
public int ServiceID { get; set; }
public Nullable<System.DateTime> date { get; set; }
public string status { get; set; }
public string details { get; set; }
public virtual Service Service { get; set; }
public virtual Employe Employe { get; set; }
}
По умолчаниютак как у меня много сотрудников, представление создает dropdownlist
, где я должен выбрать имя сотрудника.Это работает без проблем.
Тем не менее, я пытаюсь изменить dropdownlist
на textbox
, который отображал бы в настоящее время вошедшего в систему сотрудника, который сохраняется в объекте session
.
Я пробовал много вещей, таких как сохранение объекта Employe
в модели из контроллера, как вы можете видеть в приведенном выше коде контроллера, но это не сработало, так как представление не сохраняет весь объект в моем понимании, поэтому, когдаЯ утверждаю, что он переопределяет объект Employe
и оставляет только атрибут name.Он работал для date
и status
, потому что они являются базовыми объектами, но не для Employe
.
Я попытался объяснить, насколько это возможно, я довольно новичок в ASP.NET MVC.Если вам нужна дополнительная информация, просто дайте мне знать.