0

最初にエンティティ コードに関連するテーブル間の関係を使用して DropDownListFor を作成する際に問題が発生しています。

public class Motivo_Agenda 
{
    [Key]
    [Required]      
    public string DESC_MOTIVO { get; set; }
}

public class Agenda // Agenda da produção
{
    [Key]
    public int ID_AGD { get; set; }
    [Required]       
    public DateTime DATA_AGD { get; set; }       
    [Display(Name = "De")]
    public TimeSpan DE { get; set; }
    [Required]
    [Display(Name = "Até")]
    public TimeSpan ATE { get; set; }
    [Required]       
    public virtual Motivo_Agenda MOTIVO_AGENDA { get; set; }
}

ドロップダウン リストを作成して、新しい項目をアジェンダ テーブルに追加しようとしています。これは私のコントローラーです。

bAxaltaModel dbAxalta = new dbAxaltaModel();
    // GET: Agenda
    public ActionResult Edit()
    {
        ViewBag.MOTIVO_AGENDA = new SelectList(dbAxalta.Motivos_Agenda, "DESC_MOTIVO", "DESC_MOTIVO");
        return View();
    }

    [HttpPost]
    public ActionResult Edit([Bind(Include = "DE,ATE,DATA_AGD,FLAG_SAB_DOM,MOTIVO_AGENDA")]Agenda Agendas)
    {

        var errors = ModelState.Values.SelectMany(v => v.Errors).ToList();
        if (ModelState.IsValid != false)
        {                
            dbAxalta.Agendas.Add(Agendas);
            dbAxalta.SaveChanges();
            var query = dbAxalta.Agendas.Where(m => m.DATA_AGD == Agendas.DATA_AGD);
            TempData["Agendas"] = query.ToList();
            return View();
        }
        ViewBag.MOTIVO_AGENDA = new SelectList(dbAxalta.Motivos_Agenda, "DESC_MOTIVO", "DESC_MOTIVO", Agendas.MOTIVO_AGENDA);
        return View();
    }

そして、私のドロップダウンはこれです:

 @Html.DropDownListFor(m => m.MOTIVO_AGENDA, ViewBag.MOTIVO_AGENDA as SelectList, htmlAttributes: new { @class = "form-control" })

しかし、次のエラーが表示されます。

タイプ 'System.String' からタイプ 'Axalta_Project.Models.Motivo_Agenda' へのパラメーター変換は失敗しました。これらのタイプ間で変換できるタイプ コンバーターがないためです。

これらをバインドするにはどうすればよいですか?

4

1 に答える 1