【问题标题】:Problems with upgrading MVC project and adding Identity升级 MVC 项目和添加身份的问题
【发布时间】:2016-01-01 20:30:15
【问题描述】:

我有一个 ASP.NET MVC4 项目。当它被制作时,他们删除了上面的会员部分,因为他们不需要它。我现在需要向它添加用户帐户。我首先通过取消注释成员部分并安装正确的依赖项来尝试此操作,但它不起作用。

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

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

有些类没有生成/生成,例如 IdentityConfig.cs 和 AccountViewModels.cs。我也从我制作的干净 MVC 5 项目中复制了这些内容。在此过程中,我还必须添加一些额外的参考资料。

现在的问题是无法识别 AccountViewModels.cs 和 AccountController.cs 内部的任何内容。资源、视图、RedirectToAction 和 System.Web.Mvc.ModelState 等内容出现错误。错误都是“在当前上下文中不存在”或“不包含 x、y、z 的定义”。

我不知道为什么,所有的 using 语句都在那里,引用是最新的。我已经尝试了很多东西,但我现在想不出要尝试什么。

我的帐户控制器和帐户视图模型代码都是标准自动生成的代码,如果需要,我可以在问题中复制它,但由于它太多了,我认为最好省略它。这是我在 AccountController.cs 中使用的语句。

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

给出错误的代码 sn-p,这里 ViewBag 和 View 都给出“当前上下文中不存在”错误:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我这样做了,起初我遗漏了一些参考资料,但我添加了这些参考资料。然后我得到了所有这些对我来说似乎没有任何意义的错误。
    • MVC 4 和 MVC 5 对身份和成员资格使用不同的命名空间。这就是为什么您应该删除成员资格提供程序的所有名称空间,因为某些方法可能同时存在于两者中。你能提供一些给出错误的代码和确切的错误吗,因为这对我来说似乎是一个调试问题。
    • 代码是整个帐户控制器,但我会添加一个sn-p。我对 mvc4 或成员资格没有太多经验,这是哪个 using 语句?
    • 这听起来可能很愚蠢,但是您的 AccountController 是否继承了 Controller 类?因为当我删除继承时,我得到了这些错误。
    • 我做了,但是当我去查看它时,当我 f12 时它指向无处。我重新输入了它,现在它似乎工作了。它仍然在模型的控制器类中给我错误。即使我在课堂上添加了它也找不到“LoginViewModel”等。但是当我想解决它时,它希望我添加一个使用到我从中复制它的项目(在另一个解决方案中)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2022-06-17
    • 2013-08-31
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多