c# - mvc scaffolding rawをデータベースから削除

原文 c# asp.net asp.net-mvc

私は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という名前のテーブルのコントローラーを作成しようとしました。ここにコントローラーがあります。

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でこのプロジェクトを開いて、削除ボタンを使用して未加工の作成を削除しようとすると、このエラーが発生します。ただし、URLに未加工のIDを入力すると、簡単に削除できます。

何が問題なのか本当に理解できません。たくさん検索しましたが何も見つかりませんでした

誰か助けてくれますか

前もって感謝します
答え
編集アクションと削除アクションには、オプションのパラメーターとしてidがあってはなりません。編集または削除するユーザーを知るためにIDが必要ですよね?

だから変更

public ActionResult Edit(int id = 0)




public ActionResult Edit(int id)


削除についても同様にします。

また、編集と削除用のURLを作成するときに、IDも含めるようにしてください。

何かのようなもの:

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


ミハイ
関連記事

c# - ASP.NET Webアプリケーションをビルドして起動し、Microsoft CodedUIテストを効率的で時間のかからない方法で実行します

c# - マージフィールドを含むステートメントが機能しない場合のMicrosoft Word

c# - LINQ to SQL。実行時にテーブル名を変更する

javascript - MVCプロジェクトのアクションから返されたHTMLファイルのスクリプトへのパスが正しくありません

c# - Mathos Parser-文字を演算子として使用する

java - 相互互換性のためにC#暗号化をJava(Android)暗号化に変換するヘルプ

c# - Model3DCollectionとModel3DGroupの違いは何ですか?

c# - ASP.NET MVC(部分的なビュー)を使用して同じページにレビュー製品(http投稿)を追加しようとしています

c# - log4net翌日の開始時にログファイルを上書きする

c# - サービス時間を垣間見る方法