1

EntityFramework を使用して、読み取り/書き込みアクションを持つ MVC コントローラーを追加しようとしています。私のコントローラー名は UsersController です。追加を押すと、VS は Users という名前のフォルダーと、Create、Edit、Index などのサブディレクトリを作成します。

私のEntity-Modelテーブル名はUsersです。

以下のリンクでアクセスしようとすると、「リソースが見つかりません 404」というエラーが表示されます。

http://localhost:64871/Users <br>
http://localhost:64871/Users/Index<br>
http://localhost:64871/Users/Create

空の MVC コントローラー オプションで作成したリンクに到達できます。

http://localhost:64871/Home<br>
http://localhost:64871/Home/Test

何が間違っている可能性がありますか?RouteConfig ファイルにいくつかの値を追加する必要がありますか?

マイ RouteConfig.cs

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    }

私のユーザーコントローラーは次のようになります。

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

namespace Aplatform.Controllers
{
public class UsersController : Controller
{
    private dbEntities db = new dbEntities();

    //
    // GET: /Users/

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

    //
    // GET: /Users/Details/5

    public ActionResult Details(Guid id = null)
    {
        Users users = db.Users.Find(id);
        if (users == null)
        {
            return HttpNotFound();
        }
        return View(users);
    }

    //
    // GET: /Users/Create

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

    //
    // POST: /Users/Create

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(Users users)
    {
        if (ModelState.IsValid)
        {
            users.ID = Guid.NewGuid();
            db.Users.Add(users);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(users);
    }

    //
    // GET: /Users/Edit/5

    public ActionResult Edit(Guid id = null)
    {
        Users users = db.Users.Find(id);
        if (users == null)
        {
            return HttpNotFound();
        }
        return View(users);
    }

    //
    // POST: /Users/Edit/5

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

    //
    // GET: /Users/Delete/5

    public ActionResult Delete(Guid id = null)
    {
        Users users = db.Users.Find(id);
        if (users == null)
        {
            return HttpNotFound();
        }
        return View(users);
    }

    //
    // POST: /Users/Delete/5

    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(Guid id)
    {
        Users users = db.Users.Find(id);
        db.Users.Remove(users);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

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

}

ありがとうございました!

4

2 に答える 2

0

しばらくして、何か新しいことを考え出します。コントローラーにエラー (構文エラーなど) がある場合、404 エラーが発生する可能性があります。そのエラーをクリアすると、404 は自動的に消えます。

于 2014-02-27T13:18:10.727 に答える