假设我的解决方案中有两个项目。一个用于前端。另一个是后端。在使用MVC Web应用程序构建的前端项目中,我具有此ViewModel。我的后端项目(Web API控制器)如何知道此ViewModel?以前,在前端和后端只有一个项目,我的代码如下。
public class ChangePinForm
{
[Range(100000, 999999), Display(Name = "Enter Current Card Pin")]
[DataType(DataType.Password)]
public int OldCardPin { get; set; }
[Range(100000, 999999), Display(Name = "Enter New Card Pin")]
[DataType(DataType.Password)]
public int NewCardPin { get; set; }
[Range(100000, 999999), Display(Name = "Enter New Card Pin Again")]
[DataType(DataType.Password)]
public int ConfirmNewCardPin { get; set; }
}
[HttpPost]
public ActionResult ChangePin(ChangePinForm changePinForm)
{
selectedBankAccount = db.BankAccounts.Find(Session["userid"]);
if (changePinForm.OldCardPin != selectedBankAccount.PinCode)
{
ViewBag.Error = "Please key in the correct current pin number.";
return View();
} else if (changePinForm.NewCardPin != changePinForm.ConfirmNewCardPin)
{
ViewBag.Error = "New card pin number and Confirm new card pin number do not match.";
return View();
} else
{
selectedBankAccount.PinCode = changePinForm.ConfirmNewCardPin;
db.SaveChanges();
return View("Done");
}
}
答案 0 :(得分:1)
您可以简单地在后端的API中接收对象,例如
[HttpPost("changepin")]
public ActionResult ChangePin([FromBody] ChangePinForm changePinForm)
这将从另一个库中引用ChangePinForm(我建议使用.net standard 2.0),因此您都可以从.net core和.net框架中引用
答案 1 :(得分:1)
如斯里·哈莎(Sri Harsha)所说,在两个解决方案中都应该有viewmodel类。
或者,为减少重复,您可以为模型定义提供一个单独的类库,并在两个项目中都引用该类。