gpt4 book ai didi

c# - mvc脚手架从数据库中删除原始数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:08 27 4
gpt4 key购买 nike

我是 asp.net 的新手,正在尝试使用 mvc 脚手架

我为数据库名称 ProjectDatabase 编写了一个 sql 查询:

    use ProjectDatabase;

create table USERS
(
USERS_ID int IDENTITY(1,1) not null ,
email varchar(max) not null ,
phone nvarchar(30),
name nvarchar(30),
family nvarchar(30),
password nvarchar(30) not null,
createdate date not null,
lastlogindate date not null,
PRIMARY KEY (USERS_ID)
);

create table PROJECT
(
Project_ID int IDENTITY(1,1) not null ,
Description nvarchar(max),
usern_ID int references USERS(USERS_ID) ,
createDate date,
DeadLineDate date ,
Money date
PRIMARY KEY (Project_ID)
);

之后我将这个数据库表添加到 mvc4 项目的模型文件夹中

然后我尝试为名为 USERS 的表创建一个 Controller , Controller 如下:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication4.Models;

namespace MvcApplication4.Controllers
{
public class UserController : Controller
{
private ProjectDatebaseEntities db = new ProjectDatebaseEntities();

//
// GET: /User/

public ActionResult Index()
{
return View(db.USERS.ToList());
}

//
// GET: /User/Details/5

public ActionResult Details(int id = 0)
{
USER user = db.USERS.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}




//
// GET: /User/Create

public ActionResult Create()
{
return View();
}

//
// POST: /User/Create

[HttpPost]
public ActionResult Create(USER user)
{
if (ModelState.IsValid)
{
db.USERS.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}

return View(user);
}

//
// GET: /User/Edit/5

public ActionResult Edit(int id = 0)
{
USER user = db.USERS.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}

//
// POST: /User/Edit/5

[HttpPost]
public ActionResult Edit(USER user)
{
if (ModelState.IsValid)
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}

//
// GET: /User/Delete/5

public ActionResult Delete(int id = 0)
{
USER user = db.USERS.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}

//
// POST: /User/Delete/5

[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
USER user = db.USERS.Find(id);
db.USERS.Remove(user);
db.SaveChanges();
return RedirectToAction("Index");
}

protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
}

但是当我通过 firefox 打开这个项目并尝试使用删除按钮删除一个 create raw 时,我遇到了这个错误:Delete raw error但是当我在 url 中输入 raw 的 id 时,它可以很容易地被删除。

我真的不明白它有什么问题,我搜索了很多都没有找到任何东西

谁能帮帮我

提前致谢

最佳答案

编辑和删除操作不应将 id 作为可选参数。您需要一个 id 才能知道要编辑或删除哪个用户,对吗?

所以改变

public ActionResult Edit(int id = 0)

public ActionResult Edit(int id)

对删除也做同样的事情。

还要确保在构建用于编辑和删除的 url 时,您也包括了 id。

类似于:

@Url.Action("Edit", { id = model.UserID })

迷海

关于c# - mvc脚手架从数据库中删除原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com