我要为我的表创建一个删除按钮
这是我的代码
<center>
<H2>LIST OF REGISTERED STUDENTS</H2>
<br /><br />
</center>
<table class="table">
<tr>
<th>
Name
</th>
<th>
Last Name
</th>
<th>
E-Mail
</th>
<th>
Password
</th>
<th>
Student Number
</th>
<th>
Program
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.student_name)
</td>
<td>
@Html.DisplayFor(modelItem => item.student_lname)
</td>
<td>
@Html.DisplayFor(modelItem => item.student_email)
</td>
<td>
@Html.DisplayFor(modelItem => item.student_password)
</td>
<td>
@Html.DisplayFor(modelItem => item.student_number)
</td>
<td>
@Html.DisplayFor(modelItem => item.student_program)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.student_name }) |
@Html.ActionLink("Details", "Details", new { id=item.student_name }) |
@Html.ActionLink("Delete", "Delete", new { id=item.student_name })
</td>
</tr>
}
</table>
但是当我创建删除语法时
public ActionResult Delete(int id = 0)
{
CSdbConnectionString db = new CSdbConnectionString();
student student = db.students.Find(id);
if(student == null)
{
return HttpNotFound();
}
return View(student);
}
// POST: Student/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
CSdbConnectionString db = new CSdbConnectionString();
try
{
student student = db.students.Find(id);
db.students.Remove(student);
db.SaveChanges();
return RedirectToAction("ViewStudents","ConsulSked");
}
catch
{
return View();
}
}
代码db.students.Find(id)
的错误为
无法将CS.Models.student类型隐式转换为CS.student
这是我的学生班
[Table("student")]
public class student
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int student_id { get; set; }
public string student_name { get; set; }
public string student_lname { get; set; }
public string student_email { get; set; }
public string student_password { get; set; }
public string student_number { get; set; }
public string student_program { get; set; }
}
这是我的数据上下文类
public class CSdbConnectionString : DbContext
{
public CSdbConnectionString()
: base("CSdbConnectionString")
{ }
public DbSet<appointment> appointments { get; set; }
public DbSet<faculty> faculties { get; set; }
public DbSet<sched> scheds { get; set; }
public DbSet<student> students { get; set; }
}
我该怎么办?我无法创建删除选项。
答案 0 :(得分:0)
我找到了解决方案,对于将来会遇到同样错误的人。
这是因为我的项目中有一个.dbml文件,所以我可以存储我的存储过程。
CS.student
我的命名空间模型中的那个是
CS.Models.student
这就是我们需要的那个。
所以而不是
student student = db.students.Find(id);
制作
CS.Models.student student = db.students.Find(id);