0
私は基本的なHTTPポストを実装する非常に基本的なコードを持っています。私がボタンをクリックしたとき、私は実行フローが "Public ActionResult DepositToAcount(DepositToAccountView model)"になると予想しますが、それはありません。私は何が欠けていますか?ここにコードがあります:事前に感謝します。ここで投稿が失敗しましたasp.net mvc
public class MainController : Controller
{
public ActionResult DepositToAcount()
{
FindAllBankAccountResponse response = null;
DepositToAccountView viewmodel = null;
try
{
response = new ApplicationBankAccountService().GetAllBankAccounts();
viewmodel = new DepositToAccountView();
viewmodel.SetupList(response);
}
catch (Exception ex)
{
throw ex;
}
return View(viewmodel);
}
[HttpPost]
public ActionResult DepositToAcount(DepositToAccountView model)
{
//code execution never reachs there.
DepositToAccountView gorunum = null;
try
{
gorunum = new DepositToAccountView();
//deposit implementation
}
catch (Exception ex)
{
throw ex;
}
return View(gorunum);
}
}
は図である。ここでは
@model AppService.ViewModel.DepositToAccountView
@{
ViewBag.Title = "Deposit To Acount Page";
}
<h2>@ViewBag.Title</h2>
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(model => model.ChosenAccount, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.ChosenAccount, Model.AccountList)
@Html.ValidationMessageFor(model => model.ChosenAccount, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.AmountToBeDeposited, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.AmountToBeDeposited, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.AmountToBeDeposited, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Deposit" class="btn btn-default" />
</div>
</div>
</div>
はDepositToAccountViewです:
public class DepositToAccountView
{
private string _amountToBeDeposited;
private string _chosenAccount;
private List<SelectListItem> _accountList;
public List<SelectListItem> AccountList
{
get
{
return _accountList;
}
set
{
_accountList = value;
}
}
[Display(Name = "Para Eklemek İstediğiniz Hesabı Seçiniz:")]
public string ChosenAccount
{
get
{
return this._chosenAccount;
}
set
{
this._chosenAccount = value;
}
}
[Display(Name = "Eklenecek miktarı giriniz: ")]
[DataType(DataType.Currency)]
[Required(ErrorMessage = "Lütfen bir miktar giriniz.")]
public string AmountToBeDeposited
{
get
{
return this._amountToBeDeposited;
}
set
{
this._amountToBeDeposited = value;
}
}
public DepositToAccountView()
{
this.AccountList = new List<SelectListItem>();
}
public void SetupList(FindAllBankAccountResponse Response)
{
SelectListItem item = null;
try
{
if (Response == null)
{
return;
}
this.allDefaultValueToList();
foreach (BankAccountView gorunum in Response.BankAccountView)
{
item = new SelectListItem();
item.Text = gorunum.CustomerRef;
item.Value = gorunum.AccountNo.ToString();
this.AccountList.Add(item);
}
}
catch (Exception)
{
throw;
}
}
private void allDefaultValueToList()
{
SelectListItem secinizHesap = new SelectListItem();
secinizHesap.Value ="0";
secinizHesap.Text = "Hesap Seçiniz";
this.AccountList.Add(secinizHesap);
}
}