Я учусь, и мне удалось сделать красивую страницу отображения информации, отображающую списки транзакций. Тем не менее, у меня нет добавленного поля DropDown, в котором есть список банковских счетов. По умолчанию все.
Когда пользователь выбирает учетную запись и нажимает кнопку отправки, страница должна затем перемещаться только с транзакциями для этой учетной записи.
Я создал раскрывающийся список и форму для него, например:
<form id="form1" runat="server">
<h2>
Transactions:</h2>
<p>
<%
using (Html.BeginForm())
{
%>
Bank Account:
<% =Html.DropDownList("ddAccounts", Model.BankAccountItems)%> <input id="Submit1" type="submit" value="Select" />
<%
}
%>
</p>
</form>
Моя модель содержит это:
public class AccountTransactionDisplay
{
public AccountTransactionDisplay()
{
DisplayLines = new List<AccountTransactionDisplayLine>();
}
public SelectList BankAccountItems { get; set; }
public List<AccountTransactionDisplayLine> DisplayLines {get; set; }
public string ClosingBalance { get; set; }
}
public class BankAccountDropdownItem
{
public string Text {get; set;}
public string Value {get; set;}
}
public class AccountTransactionDisplayLine
{
public string RowColouring { get; set; }
public string TransactionDate { get; set;}
public string PayeeName { get; set; }
public string Amount { get; set; }
public bool AmountIsDebit { get; set; }
public string CategoryName { get; set; }
public string CostCenterName { get; set; }
public string BudgetName { get; set; }
public string RunningTotal { get; set; }
public bool RunningTotalIsDebit { get; set; }
public bool AlternateRowColour { get; set; }
public bool HasSplitItems { get; set; }
}
Итак, AccountTransactionDisplay - это модель, которую я передаю представлению. В этой модели у меня есть это:
public SelectList BankAccountItems { get; set; }
Содержит список элементов, которые отображаются в моем раскрывающемся списке. Это отображается правильно.
Однако, когда пользователь нажимает кнопку отправки, я не уверен, как вернуть выбранное значение.
Я думал, что у меня в контроллере будет метод, который принимает POST ... Итак, я добавил это:
[HttpPost]
public ActionResult Transactions(AccountTransactionDisplay model)
{
AccountTransactionDisplay trans = GetTransactions();
return View(trans);
}
И если я установлю точку останова, она достигнет этого, но кажется, что модель пуста. Мне нужно добавить идентификатор выбранной учетной записи в методе GetTransactions, чтобы выполнить фильтрацию.