2017-04-06 18 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

相關問題