2014-12-27 2 views
0

Я хочу выполнить действие базы данных при входе в систему. Так что я использую хранимую процедуру для получения данных, но здесь я столкнулся с некоторыми проблемами, связанными с исключением модели.Подключение к базе данных MVC4

public ActionResult Login(UserInfo model, string returnUrl) 
     { 
      if (ModelState.IsValid) 
      { 
       List<UserInfo> loginDetails = dbContext.Database.SqlQuery<UserInfo> 
        ("exec spGetloginUserInfo @username,@password", new SqlParameter("@username", model.username), new SqlParameter("@password", model.password)).ToList(); 
       return RedirectToLocal(returnUrl); 
      } 

      // If we got this far, something failed, redisplay form 
      ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      return View(model); 
     } 

My Model

public class UserInfo 
    { 
     public string usertype { get; set; } 
     public string username { get; set; } 
     public string password { get; set; } 
     public bool active { get; set; } 
     public DateTime lastmodifieddate { get; set; } 
     public string modifiedby { get; set; } 
     public bool RememberMe { get; set; } 
    } 

Исключение брошено является

Исключение типа 'System.Data.Entity.ModelConfiguration.ModelValidationException' произошло в EntityFramework.dll но не обрабатывается в коде пользователя

Пожалуйста, дайте мне знать, где я делаю неправильно, а также подходит ли мой подход? А также есть ли другой способ взаимодействия с базой данных другой, что используется в хранимой процедуре.

+0

вы уверены, что не все обнуляемых свойства передаются перед вызовом Войти действие, т.е. lastmodifieddate? Что касается вашего подхода, если бы я был у, я бы написал свою логику в linq вместо SP, чтобы избежать рассеяния моей бизнес-логики более чем на один уровень. – Gouda

+0

ya Я уверен, что все не могут быть обнулены. как я могу использовать linq в этом случае. не могли бы вы бросить больше света на это. –

+0

Его просьба определить ключ для EntityType 'UserInfo'. Я не знаю, какой ключ он ищет. –

ответ

0

ModelState.AddModelError выдает сообщение об ошибке, но ваш клиент/javascript/views не поймал эту ошибку.

Вот ссылка о том, как реализовать подобную обработку ошибок в представлениях.

ASP.NET MVC 2 Model Errors with Custom Exceptions

Кроме того, убедитесь, что модель UserInfo имеет достоверные данные для каждого свойства

Login(UserInfo model, string returnUrl) <<-- the model of type UserInfo 
+0

Его просьба определить ключ для EntityType 'UserInfo'. Я не знаю, какой ключ он ищет –

+0

Вы должны поместить имя модели @Model в свои представления – agentpx

Смежные вопросы