Итак. Я работаю над веб-сайтом на основе Razor, который функционирует как бизнес-менеджер.
Я пытаюсь связать адрес с принтером на странице создания.
Модель принтера выглядит так: publi c class Printer {publi c int ID {get; устанавливать; }
[StringLength(50)]
[Display(Name = "Machine ID")]
public string MachineID { get; set; }
[Display(Name = "Log ID")]
public int Log_ID { get; set; }
[Display(Name = "Lease ID")]
public int Lease_ID { get; set; }
[Display(Name = "Serial Number")]
[StringLength(50)]
public string Serial_Number { get; set; }
[StringLength(10)]
public string Solution { get; set; }
[StringLength(50)]
[Display(Name = "Additional Info")]
public string Additional_Info { get; set; }
[DataType(DataType.Date)]
[Display(Name = "Installation Date")]
public DateTime InstallationDate { get; set; }
[Display(Name = "Mono Click")]
public float Mono_Click { get; set; }
[Display(Name = "Colour Click")]
public float Colour_Click { get; set; }
public int Minimum { get; set; }
[Display(Name = "Parts Warranty")]
public int Parts_Warranty { get; set; }
[Display(Name = "IT Support")]
public int IT_Support { get; set; }
[StringLength(50)]
[Display(Name = "Contract Type")]
public string Contract_Type { get; set; }
public Company_Site Site { get; set; }
public Printer_Model Model { get; set; }
public Address Previous_Address { get; set; }
}
Модель адреса выглядит следующим образом: publi c class Address {publi c int ID {get; устанавливать; }
[StringLength(50)]
[Display(Name = "Address")]
public string Address_1 { get; set; }
[Display(Name = "Address")]
[StringLength(50)]
public string Address_2 { get; set; }
[StringLength(50)]
[Display(Name = "City")]
public string Town_City { get; set; }
[StringLength(50)]
public string County { get; set; }
[Display(Name = "Post Code")]
[StringLength(10)]
public string Post_Code { get; set; }
}
Чтобы попытаться связать их вместе, у меня есть это в моем файле Create.cs html .cs:
public List<SelectListItem> PrevAddress { get; set; }
public IActionResult OnGet()
{
PrevAddress = _context.Address.Select(a => new SelectListItem
{
Value = a.ID.ToString(),
Text = a.Address_1 + " " + a.Town_City + " " + a.Post_Code
}).ToList();
return Page();
}
Create.cs html:
<div class="form-group">
<label asp-for="Printer.Previous_Address.ID" class="control-label"></label>
<select asp-for="Printer.Previous_Address.ID" name="PrevAddress" asp-items="Model.PrevAddress" class="form-control"><option value=""></option></select>
<span asp-validation-for="Printer.Previous_Address.ID" class="text-danger"></span>
</div>
Однако, когда я запускаю его через свою форму, никакое значение не отправляется в поле внешнего ключа в базе данных, даже если я явно выбрал один из своих адресов из раскрывающегося списка. Любая помощь в этом будет принята с благодарностью.