升级MVC项目和添加Identity的问题

时间:2015-10-05 08:35:24

标签: asp.net-mvc-4 visual-studio-2013 asp.net-mvc-5 asp.net-identity

我有一个ASP.NET MVC4项目。制作完成后,他们删除了会员部分,因为他们不需要它。我现在需要添加用户帐户。我首先尝试通过取消注释成员资格部分并安装正确的依赖项,但它没有用。

然后我决定将项目升级到MVC 5并向其添加Identity。这是因为我有MVC 5和身份的经验,而不是会员资格。升级很顺利,然后我将Identity和Owin的块添加到项目中。

到目前为止,我检查了版本是否正确且最新。我注意到帐户控制器没有自动更新,仍然是旧的会员控制器。我用自动生成的控制器和用户帐户创建了一个新的MVC5项目,并复制了帐户控制器代码。这是我开始遇到问题的地方。

有些类没有像IdentityConfig.cs和AccountViewModels.cs那样制作/生成。我也从我制作的干净的MVC 5项目中复制了这些。我还必须在此过程中添加一些额外的引用。

现在的问题是AccountViewModels.cs和AccountController.cs内部没有任何内容被识别。我收到一些错误,例如Resources,View,RedirectToAction和System.Web.Mvc.ModelState。错误都是“在当前上下文中不存在”或“不包含x,y,z的定义”。

我不知道为什么,所有的使用陈述都在那里,引用是最新的。我尝试了很多东西,我想不出现在要尝试什么。

我的帐户控制器和帐户视图模型代码是所有标准的自动生成代码,如果需要我可以在问题中复制它,但由于它太多了,我认为省略它可能更好。以下是来自AccountController.cs内部的using语句。

using System;
using System.Globalization;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin.Security;
using System.Net.Mail;
using System.Web.Configuration;
using Microsoft.Owin.Host.SystemWeb;
using Emenka.HumanResources.Application.Models;
using Emenka.HumanResources.Application.App_Start;

更新1

提供错误的代码段,此处ViewBag和View都给出了“当前上下文中不存在”错误:

// GET: /Account/Login
        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            return View();
        }

1 个答案:

答案 0 :(得分:0)

我建议您使用MVC 5和Identity创建新的Web项目,并比较这两个项目以查看缺少的文件。此外,您可以从那里重用一些自动生成的代码(控制器/视图),甚至可以使用新项目作为基础,并将当前项目的逻辑(如果是一个小项目)复制到新项目中。