繁体   English   中英

错误CS1503参数1:无法从“ KurseviApp.Kurs”转换为“ KurseviApp.Student”

[英]Error CS1503 Argument 1: cannot convert from 'KurseviApp.Kurs' to 'KurseviApp.Student'

我是ASP.NET MVC的新手,我正在尝试制作具有多对多关系(课程/学生)的简单应用程序。 用我的语言是(库尔斯/学生)。

这是我的课程

namespace KurseviApp
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations.Schema;

    public partial class Kurs
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Kurs()
        {
            this.Student = new HashSet<Student>();
        }

        public int PK_Kurs_ID { get; set; }
        public string Naziv_Kursa { get; set; }
        [NotMapped]
        public string Izabrani { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<Student> Student { get; set; }
    }
}

这是我的学生班

namespace KurseviApp
{
    using System;
    using System.Collections.Generic;

    public partial class Student
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Student()
        {
            this.Kurs = new HashSet<Kurs>();
        }

        public int PK_Student_ID { get; set; }
        public string Broj_Indeksa { get; set; }
        public string Ime { get; set; }
        public string Prezime { get; set; }
        public string Godina { get; set; }
        public string Status { get; set; }

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<Kurs> Kurs { get; set; }
    }
}

到目前为止,我做得很好。 但是,当我创建新课程并选择学生时,就会出现问题。 这是我在控制器中的代码

private kurseviEntities db = new kurseviEntities();

public ActionResult Add(int id = 0)
{
    Kurs ks = new Kurs();
    using (db)
    {
        ks.Student = db.Student.ToList();
    }
    return View(ks);
}
[HttpPost]
public ActionResult Add(Kurs kurs)
{
    using (db)
    {
        db.Student.Add(kurs); //THIS LINE IS A PROBLEM
        db.SaveChanges();
    }
    return RedirectToAction("index");
}

它给了我我在文章标题中写的错误。 如果我删除该行,则说明课程已成功创建,但是仍然缺少将学生添加到课程中的信息。 欢迎大家的帮助,在此先感谢。

编辑:这是我的看法

@model KurseviApp.Kurs
@{
    ViewBag.Title = "Add";
}
<h2>Add</h2>

@using (Html.BeginForm())
{
    <div class="form-horizontal">
        @Html.HiddenFor(model => model.PK_Kurs_ID)
            @Html.LabelFor(model => model.Naziv_Kursa, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Naziv_Kursa, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Naziv_Kursa, "", new { @class = "text-danger" })
            </div>

        <label>Odabir studenata</label>
        @Html.DropDownListFor(model => model.Izabrani, 
    new SelectList(Model.Student, "PK_Student_ID", "Ime"), 
    new { @class="choosen-select", id = "normalDropDown" })
        <input type="submit" name="name" value="submit" />
    </div>
}

@section scripts {
    <script>
    $(function () {
    $("#normalDropDown").chosen({ width: "15%" });
    });    
    </script>
}

Kurs人和Students是不同的事物。 db.Students是“ Students列表,您正尝试将新的“ Kurs直接添加到该列表中。 我的猜测是,您想获取一个特定的学生,然后调用student.Kurs.Add(kurs)Kurs添加到特定学生的kurs列表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM