mvc scaffolding从数据库中删除raw

时间:2014-11-28 18:13:38

标签: c# asp.net asp.net-mvc

我是asp.net的新手并试图使用mvc scaffolding

我为数据库名称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的表创建一个控制器,这里是控制器:

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打开这个项目时,我尝试使用删除按钮删除一个创建原始,我面对这个错误:Delete raw error但是当我在url中键入raw的id时它可以被删除容易。

我真的无法理解它有什么问题,我搜索了很多但我找不到任何东西

任何人都可以帮助我

提前致谢

1 个答案:

答案 0 :(得分:0)

编辑和删除操作不应具有 id 作为可选参数。您需要 ID 才能知道要编辑或删除的用户,对吧?

所以改变

public ActionResult Edit(int id = 0)

public ActionResult Edit(int id)

也为删除做同样的事。

另外请确保在构建用于编辑和删除的网址时,您还要包含该ID。

类似的东西:

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

米哈伊