【发布时间】:2014-08-08 16:24:12
【问题描述】:
我是 ASP.NET MVC 5 和 WebAPI 2 技术的新手。我目前正在为我的桌面应用程序开发 Web 服务。
我在 asp.net mvc 5 web API 2 中开发了具有个人用户帐户身份验证的网络服务。我参考链接:-“http://vod.com.ng/en/video/KyxcLfz_CW8/8-Authenticated-WebAPI-ASPNET-MVC-5-Fundamentals-5-WebAPI-2”。它帮助了我,但我需要在项目中添加层,即 WEB 和 CORE。
我将“AccountBindingModels.cs”和“AccountViewModels.cs”从 WEB 中的 Models 文件夹转移到 CORE 中的 POCO 文件夹,运行程序后出现错误“POST /api/account/register 500 (Internal Server Error)”和“尝试创建'AccountController'类型的控制器时发生错误”。
我想添加将由单个用户帐户进行身份验证的 api 控制器和模型类。请帮忙。让我知道您还需要知道什么。提前致谢。
来自 UnityConfig.cs 文件的代码
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType(typeof(IRepository<>), typeof(Repository<>));
container.RegisterType(typeof(DbContext), typeof(DataContext));
}
控制器
namespace DesktopApp.Controllers
{
public class StudentLoginController : ApiController
{
private IRepository<StudentLogin> _StudentLoginRepository;
public StudentLoginController(IRepository<StudentLogin> StudentLoginRepository)
{
_StudentLoginRepository = StudentLoginRepository;
}
[HttpPost]
[Route("api/StudentLogin/Post")]
public StudentLogin Post(StudentLogin loginData)
{
var studentLoginDetails = _StudentLoginRepository.GetAll().Where(p => p.studentName == loginData.studentName && p.studentPassword == loginData.studentPassword).FirstOrDefault<StudentLogin>();
return studentLoginDetails;
}
【问题讨论】:
-
你的问题有点含糊。你能发布适当的代码sn-ps吗?顺便说一句,我不会将视图模型移动到另一层,因为它们与 UI 相关,因此最好将它们留在这一层中。
-
如何解决您的依赖关系?如果没有看到您的实际注射,很难说出了什么问题。或许this thread对你有一点帮助。
-
感谢您的帮助。是的,我将视图模型移动到同一层。但是我在另一层 Core -> POCO 中添加了模型类。我正在使用 Unity 的依赖注入。我认为解决控制器的依赖关系有任何问题。我想我已经为控制器添加了手动依赖解析器。我已经添加了上面的图片。
-
我一直在解决 userManager 控制器和我的 web api 控制器之间的依赖关系。我已经添加了上面的代码。
-
你的实际控制器是什么样子的(尤其是你执行注入的构造函数)?
标签: asp.net-mvc-5 asp.net-web-api2