我是 MVC 的新手,我正在尝试构建一个基本的 Web 应用程序来模拟网上银行的一些功能。到目前为止,我已经能够设置用户帐户并将其与 SimpleMembership 链接,并为帐户管理实现一些简单的 CRUD 功能。
编辑:
我希望转账像下面这样工作,让用户从视图的下拉框中选择 account1 和 account2,然后输入转账金额。我的问题是,在我的特定模型设置下,如果两个帐户总数都在同一类中,是否会这样做?或者最好给每个学生一个 ICollection 帐户?
像这样处理转入和动作结果的逻辑是否正确?还是最好在模型中处理?
我正在尝试做的伪代码
public ActionResult TransferFunds(int firstAccountId, Int SecondAccountID, decimal transferAmount)
{
var account1 = //find first account from context
var account2 = //find second account from context
if(account1 amount >= transferAmount)
{
account1 amount -= transferAmount;
account2 amount += transferAmount;
}
save changes
}
感谢您抽出时间查看此内容并提供帮助。
这是我提到的相关模型。
用户、学生和帐户的模型
public class User
{
[Key]
[Editable(false)]
[ForeignKey("UserProfile")]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
public int UserId { get; set; }
public virtual UserProfile UserProfile { get; set; }
[Display(Name = "First Name")]
[Required(ErrorMessage = "First name is required.")]
[MaxLength(50)]
public virtual string FirstName { get; set; }
[Display(Name = "Last Name")]
[Required(ErrorMessage = "Last name is required.")]
[MaxLength(50)]
public virtual string LastName { get; set; }
}
学生
public class Student : User
{
[ForeignKey("Account")]
[Editable(false)]
public virtual int AccountID { get; set; }
public virtual Account Account { get; set; }
[Column("ClassroomID")]
[ForeignKey("Classroom")]
public virtual int ClassroomID { get; set; }
public virtual Classroom Classroom { get; set; }
}
银行账户
public class Account
{
[Key]
[Editable(false)]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
public virtual int AccountID { get; set; }
[DisplayFormat(DataFormatString = "{0:c}")]
[Column(TypeName = "money")]
public virtual decimal CheckingsTotal { get; set; }
[DisplayFormat(DataFormatString = "{0:c}")]
[Column(TypeName = "money")]
public virtual decimal SavingsTotal { get; set; }
public decimal AccountTotal()
{
return SavingsTotal + CheckingsTotal;
}