У меня есть страница для создания проектов.Проект требует имя и клиент.Я использую Entity Framework Core (Code First), и у меня есть модели как для «Проекта», так и для «Клиента». Свойство для клиента в модели проекта:
public Client Client { get; set; }
Когда я впервые сделал страницу свойствомбыл по ошибке;
public int Client { get; set; }
Теперь, когда я создал страницу создания для модели проекта, она работала с неверным свойством.Теперь, после того как я исправил модель проекта, клиентское значение не выбирается в списке выбора, когда я пытаюсь добавить проект в базу данных (он говорит, что значение равно нулю, и оно есть).
Вот код для заполнения списка выбора;
public void PopulateClientsDropDownList()
{
var Clients = from c in _context.Clients
orderby c.ClientName
select c;
ClientList = Clients.Select(x => new SelectListItem
{
Text = x.ClientName,
Value = x.id.ToString()
}).ToList();
}
Вот код для фактической страницы
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Project.ProjectName" class="control-label"></label>
<input asp-for="Project.ProjectName" class="form-control" />
<span asp-validation-for="Project.ProjectName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Project.Client" class="control-label"></label>
<select asp-for="Project.Client" asp-items="Model.ClientList" class="form-control">
<option value="">-- Select Client --</option>
</select>
<span asp-validation-for="Project.Client" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
и вот модели
public class Project
{
[Key]
public int Id { get; set; }
[Required]
public string ProjectName { get; set; }
//Dates
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public DateTime CreateDate { get; set; }
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime UpdateDate { get; set; }
//Relationships
[Required]
public Client Client { get; set; }
public virtual List<Spread> Spreads { get; set; }
}
public class Client
{
[Key]
public int id { get; set; }
[Required]
public string ClientName { get; set; }
}
Спасибо за помощь