【发布时间】:2020-08-10 13:39:53
【问题描述】:
控制器包括:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Hoạt_động act= db.Hoạt_động.Find(id); ;
if (act== null)
{
return HttpNotFound();
}
IList<SelectListItem> mt = new List<SelectListItem>();
Dropdownlist();
return View(act);
}
和
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Mã_Hoạt_động, Hoạt_Động, Mã_Chương_trình, Loại_hình, Thông_tin, Đáp_án, ActNội_dung, Thời_gian, Thời_gian_Kết_thúc, Thông_Báo, NoteNội_dung, Ngày")]MultipleActivityEditClass mt)
{
if (ModelState.IsValid)
{
db.MultipleActivityEd(mt.Mã_Hoạt_động, mt.Hoạt_Động, mt.Loại_hình, mt.Thông_tin, mt.Đáp_án, mt.ActNội_dung, mt.Thời_gian, mt.Thời_gian_Kết_thúc, mt.Thông_Báo, mt.NoteNội_dung, mt.Ngày);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Mã_Chương_trình = new SelectList(db.Chương_trình, "Mã_Chương_trình", "Tên", mt.Mã_Chương_trình);
return View(mt);
}
MultipleActivityEd 类
public class MultipleActivityEditClass
{
public Nullable<int> Mã_Hoạt_động { get; }
public string Hoạt_Động { get; set; }
public Nullable<int> Mã_Chương_trình { get; set; }
public string Loại_hình { get; set; }
public string Thông_tin { get; set; }
public string Đáp_án { get; set; }
public string ActNội_dung { get; set; }
public Nullable<System.DateTime> Thời_gian { get; set; }
public Nullable<System.DateTime> Thời_gian_Kết_thúc { get; set; }
//Another table
public string Thông_Báo { get; set; }
public string NoteNội_dung { get; set; }
public Nullable<System.DateTime> Ngày { get; set; }
}
Edit 控制器不接受 act 作为参数。
抛出异常--
"这个字典需要一个类型的模型项 'WebApplication1.Models.MultipleActivityEditClass'"
我不知道如何解决此问题或将 act 转换为所需的模型项。
存储过程:
@Id int,
@ActName varchar(50),
@Mã_Chương_trình int,
@Loại_hình varchar(50),
@Thông_tin varchar(50),
@Đáp_án varchar(50),
@ActNội_dung varchar(50),
@Thời_gian datetime,
@Thời_gian_Kết_thúc datetime,
@NoteName varchar(50),
@NoteNội_dung varchar(MAX),
@Ngày date
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
update [Hoạt động]
set
Tên = @ActName,
[Mã Chương trình] = @Mã_Chương_trình,
[Loại hình] = @Loại_hình,
[Thông tin] = @Thông_tin,
[Đáp án] = @Đáp_án,
[Nội dung] = @ActNội_dung,
[Thời gian] = @Thời_gian,
[Thời gian Kết thúc] = @Thời_gian_Kết_thúc
where [Mã Hoạt động] = @Id
insert into [Thông báo]([Mã Hoạt động],Tên,[Nội dung],Ngày)
values(@Id,@NoteName,@NoteNội_dung,@Ngày)
END
【问题讨论】:
-
看起来您正在使用实体。实体有一个映射文件,将数据库表/属性映射到 c# 类。映射文件需要刷新。您更改了数据库或 c# 类,现在映射不一致。
-
我使用的是 ASP.NET 4.6 MVC 模型,如何确保映射是一致的?进行更改时是否还可以检查其一致性?
-
问题是我未能从 db 实体转换为类。我找到了解决办法
标签: c# sql sql-server asp.net-mvc stored-procedures