I want to get the row of data that matches the user ID I have. Then I want to return that view to my view to be displayed in my textboxes for editing.
Here's the action that gets called when a get request to sent to the controller:
public ActionResult EditUserAccount()
{
UserAccountViewModel editUserAccountViewModel = new UserAccountViewModel();
db_user user = new db_user();
editUserAccountViewModel.UserName = UserSession.GetValue(StateNameEnum.UserName, StateNameEnum.UserName.ToString()) as string;
var Title = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.Title).ToString();
var FirstName = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.FirstName).ToString();
var LastName = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.LastName).ToString();
var PhoneNumber = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.PhoneNumber).ToString();
var AltPhoneNumber = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.AltPhoneNumber).ToString();
var EmailAddress = context.db_user.Where(x => x.UserId == editUserAccountViewModel.UserId).Select(x => x.EmailAddress).ToString();
editUserAccountViewModel.Title = Title;
editUserAccountViewModel.FirstName = FirstName;
editUserAccountViewModel.LastName = LastName;
editUserAccountViewModel.PhoneNumber = PhoneNumber;
editUserAccountViewModel.AltPhoneNumber = AltPhoneNumber;
editUserAccountViewModel.EmailAddress = EmailAddress;
return (PartialView("~/Views/Account/UserAccount.cshtml", editUserAccountViewModel));
}
The problem is the repetitious calls to get specific fields from the database so that I can set my viewmodel properties to them. Is there a better way to do this?