2017-04-06 41 views
0

我有一个索引控制器,它获取用户数据并将其保存到我的应用程序中的模型中。这发生在下面的“CustomAuth”调用中。将服务中的模型数据用于其他服务保存后的服务中。

[CustomAuth(group = "Role-View")] 
public class IndexController : Controller 
{ 
    public ActionResult Index() 
    { 
     try 
     { 
      //call to progService 
      return View(); 
     } 
     catch (Exception e) 
     { 
      Error.Log(e, log.LogGuid, this.User.Identity.Name); 
      return View(); 
     } 
    } 
} 

这里是我用来分配东西给我的模型的代码。

public void CheckForUser(string username, string firstName, string lastName, string emailAddress, string phoneNumber) 
    { 
     var userDataModel = new UserDataModel(); 
     userDataModel.username = username; 
     userDataModel.firstName = firstName; 
     userDataModel.lastName = lastName; 
     userDataModel.emailAddress = emailAddress; 
     userDataModel.phoneNumber = phoneNumber; 

     var userexists = db.PARTies.Any(x => x.ABBR_NM == username); 
     if (userexists) 
     { 
      var updateUser = db.PARTies.SingleOrDefault(x => x.ABBR_NM == username); 
      //Get and assign the partId to the model. 
      userDataModel.partyId = updateUser.PARTY_ID; 
      //Update any fields that are relevant. 
      updateUser.FIRST_NM = userDataModel.firstName; 
      updateUser.LAST_NM = userDataModel.lastName; 
      updateUser.ABBR_NM = userDataModel.username; 
      updateUser.FULL_NM = (userDataModel.firstName + " " + userDataModel.lastName); 
      //Save the updated Data to the database. 
      db.SaveChanges(); 

我的问题是,一旦完成,我似乎无法再次访问用户数据。我想调用我的数据库并像这样使用模型中的userDataModel.partyId。 (在我的业务层的服务。)

public List<WizardProgModel> FetchTable() 
{ 
    return db.WIZARD_PRGRSS.Where(x => x.PARTY_ID == userDataModel.partyId); 
} 

我可能在这里失踪了愚蠢的事情,但我不应该能够引用什么,我在我的模型指定应用程序运行时?到目前为止,所有事情都是服务器端,因此View不应该在这一点上发挥作用。

谢谢。

+0

你需要看看变量的作用域..'userDataModel'只存在于'CheckForUser'方法和不可传递的参数在这方面 –

回答

1

您不需要声明模型将其作为新的数据库实体保存,只需直接使用您的方法中的参数,并在您的服务中直接使用该参数只需从数据库中取回实体即可。如果你需要在服务模型获取它像这样:

var userModel = db.PARTies.FirstOrDefault(x => x.ABBR_NM == username).Select(e => new = UserDataModel { 
username = username, 
firstName = firstName, 
lastName = lastName, 
emailAddress = emailAddress, 
phoneNumber = phoneNumber 
}); 

让你读的方法接受方ID作为参数,你将如何得到它的服务,我不能告诉你因为我根本没有你的应用程序/解决方案的范围。

public List<WizardProgModel> FetchTable(int partyId) 
{ 
    return db.WIZARD_PRGRSS.Where(x => x.PARTY_ID == partyId); 
} 
+0

之外是奏效的答案。我希望找到一种方法来使用变量而不通过它们,也不要将它们设置为静态。这虽然工作。谢谢。 – joerdie

相关问题