只是一个标准的先驱,我正在自学通过 ASP.NET MVC 3 进行编程,所以我的知识是基本的,从概念上讲,我对我正在尝试做的事情持开放态度。
所以,这就是我想要做的:
我创建了一个收集公司和用户数据的 ViewModel。我的目的是将这些数据保存到两个域模型中,即 Company 和 User,其中Company中的Id是User中的外键。此外,我想传递必要的用户数据来创建会员资格。
我的问题是,现在我已经超越了基本 ASP.NET MVC 教程中的基本强类型模型关联,我不确定如何通过 HttpPost 同步所有内容。
这是我的视图模型:
public class SPCompanyViewModel
{
[Required]
[Display(Name = "Company Name")]
public string CompanyName { get; set; }
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
这是我的公司和用户的域模型:
namespace BidFetcher.Models.ServiceProvider
{
public class SPCompany
{
public int Id { get; set; }
public string CompanyName { get; set; }
}
public class SPUser
{
public int Id { get; set; }
public int SPCompanyId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
这是我的问题区域,控制器:
[HttpPost]
public ActionResult Create(SPCompanyViewModel viewModel)
{
var spCompany = new SPCompany
{
CompanyName = viewModel.CompanyName,
};
db.SPCompany.Add(spCompany);
return RedirectToAction("Index");
}
如您所见,我可以毫无问题地创建公司记录。但是,现在我被卡住了,因为我不确定如何轻松地从我刚刚创建的记录中获取公司ID,以便我可以在 User 表中创建一个新行。
非常感谢任何有关解决此类问题的代码建议或概念建议!