Я новичок и все еще изучаю asp.net MVC. Я создал метод отправки отправки, который работает путем отправки суммы денег от пользователя другому на основании номера счета и достаточных средств. Моя программа работает нормально, но всякий раз, когда я пытаюсь отправить деньги из одной учетной записи в другую, обновление работает только в таблице «Транзакции» и никаких обновлений не происходит в таблице CheckingAccounts, которая должна вычитать из баланса - в случае передачи или добавления в нее как требуется! Я что-то пропустил в методе действий? и почему не обновил баланс в таблице aCheckingAccounts? Любая помощь приветствуется!Метод действия обновляется только 1 таблица MVC
денежных переводов Действие Метод
[HttpGet]
public ActionResult MoneyTransfer(int checkAccountId)
{
return View();
}
[HttpPost]
public ActionResult MoneyTransfer(Transfers transfer)
{
var checkingFunds = DB.checkAccounts.Find(transfer.CheckAccountId);
if (checkingFunds.Balance < transfer.Amount)
{
ModelState.AddModelError("Amount", "You do not have enough money!");
}
var checkingExistedAccount = DB.checkAccounts.Where(account => account.AccountNumber == transfer.checkingExistedAccount).FirstOrDefault();
if (checkingExistedAccount == null)
{
ModelState.AddModelError("checkingExistedAccount", "Account does not exist!");
}
if (ModelState.IsValid)
{
//Transaction transaction = new Transaction();
//transaction.TransactionDate = DateTime.Now;
DB.Transactions.Add(new Transaction { CheckAccountId = transfer.CheckAccountId, Amount = -transfer.Amount });
DB.Transactions.Add(new Transaction { CheckAccountId = checkingExistedAccount.Id, Amount = transfer.Amount });
DB.SaveChanges();
return RedirectToAction("Index","Home");
}
return View();
}
Transfer Модель
public class Transfers
{
[Required]
[DataType(DataType.Currency)]
public decimal Amount { get; set; }
[Required]
public int CheckAccountId { get; set; }
[Required]
[Display(Name ="Recipient Account ID ")]
public string checkingExistedAccount { get; set; }
}
CheckingAccount Модель
public class CheckingAccount
{
public int Id { get; set; }
[Display(Name = "Account Number: ")]
public string AccountNumber { get; set; }
[Display(Name = "Balance: ")]
[DataType(DataType.Currency)]
public decimal Balance { get; set; }
}
Сделки Модель
public class Transaction
{
public int Id { get; set; }
[Required]
[DataType(DataType.Currency)]
[DisplayFormat(ConvertEmptyStringToNull = false)]
public decimal Amount { get; set; }
[Required]
public int CheckAccountId {get; set;}
public DateTime? TransactionDate { get; set; }
public virtual CheckingAccount checkAccount { get; set; }
}
Update: Активация свойства TransactionDate выдает ошибку исключения из
Cannot insert the value NULL into column 'TransactionDate', table 'aspnet-dbo.Transactions'; column does not allow nulls. UPDATE fails. The statement has been terminated
Код, вставленный в ваш контроллер, не будет скомпилирован, как вы его вставили. У вас действительно есть дополнительный ';' в вашем методе? –
Привет, Был дополнительный; и удалил его в методе get! Извините Ошибка Typo! Нет, там нет; в методе. – Dodi
Вы получаете какие-либо ошибки или исключения? –