asp.net mvc 4 プロジェクト内に「管理」領域を作成しました。今のところ、このエリアには基本的なものしかありません。理想的には、アプリケーションが実行されたら、ユーザーが URL に /Admin と入力し、管理者インデックス ビューにリダイレクトされるようにしたいと考えています。しかし、プログラムを実行すると、「管理者が見つかりません」というエラーが表示されます?? どこか参照がありませんか??
また、通常のユーザー ログイン ページが最初にレンダリングされるビューです。そのログイン ページをバイパスして、[管理] セクションにアクセスする必要があります。ただし、次の行が 2 番目のログイン オプションを妨げていると思います。
WebSecurity.InitializeDatabaseConnection("Portal.Model.PortalDBContext","PatientPortalAccount", "PatientID", "Username", autoCreateTables: true);
通常のユーザー テーブルを変更してロールを含めることはできないことに注意してください。あなたがまだ気づいていないなら、私はまだ学んでいるので、長々とした質問をお詫びします...
管理コントローラ、
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Portal.Web.Areas.Admin.Controllers
{
public class AdminController : Controller
{
//
// GET: /Admin/Admin/
public ActionResult Index()
{
return View();
}
ビューを持つインデックスactionResultを使用します。
@model Portal.Model.AdminDetails
@{
ViewBag.Title = "Admin";
Layout = "~/Views/Shared/Login.cshtml";
}
この領域には、生成された .cs ファイル AdminAreaRegistration もあります。
using System.Web.Mvc;
namespace Portal.Web.Areas.Admin
{
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Admin", action = "Index", id = UrlParameter.Optional },
new [] { "Admin.Controllers" }
);
}
}
}
そしてGlobal.asaxファイル内....
using System;
using System.Linq;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using WebMatrix.WebData;
namespace Portal.Web
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
WebSecurity.InitializeDatabaseConnection("Portal.Model.PortalDBContext", "PatientPortalAccount", "PatientID", "Username", autoCreateTables: true);
//BOC - Remove Web Forms View Engine
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
}
}