Ich lerne, und schaffte es, eine schöne Info-Display-Seite, die Liste der Transaktionen angezeigt. Ich habe jedoch keine DropDown-Box hinzugefügt, die eine Liste von Bankkonten enthält. Es ist standardmäßig für alle.ASP.Net MVC Rückgabewert eines DropDown
Wenn der Benutzer ein Konto auswählt und die Übermittlungsschaltfläche drückt, sollte die Seite nur mit Transaktionen für dieses Konto verknüpft werden.
Ich habe den Drop-Down erstellt und das Formular für die es, wie folgt aus:
<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>
Mein Modell enthält diese:
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; }
}
So ist AccountTransactionDisplay das Modell, das ich zu der Ansicht passieren . In diesem Modell habe ich folgendes:
public SelectList BankAccountItems { get; set; }
Das enthält eine Liste der Elemente, die in meinem Dropdown angezeigt werden. Das wird korrekt angezeigt.
Wenn der Benutzer jedoch auf die Schaltfläche Senden klickt, bin ich nicht sicher, wie der ausgewählte Wert zurückgeholt wird.
Ich dachte, dass ich eine Methode in meinem Controller haben würde, der die POST ... So akzeptiert, ich habe diese hinzugefügt:
[HttpPost]
public ActionResult Transactions(AccountTransactionDisplay model)
{
AccountTransactionDisplay trans = GetTransactions();
return View(trans);
}
Und wenn ich einen Haltepunkt setzen, ist es diese trifft, aber es scheint Modell ist leer. Ich muss die ID des ausgewählten Kontos der GetTransactions-Methode hinzufügen, um die Filterung durchzuführen.
Danke Brian - ich denke, das wird mir helfen. Ich überprüfe thbe Quelle, und der Name des Dropdown ist ddAccounts wie erwartet. Also, ich muss die Eigenschaft, namens ddAccounts (??) zu meinem bestehenden Modell hinzufügen - aber welcher Typ sollte es sein? – Craig
Eine Zeichenfolge reicht. – CRice
Danke Jungs! Das hat funktioniert. Keine Ahnung, wie ... Ist das eine Regel, dass, wenn es ein Steuerelement gibt, das einen Wert übergibt, wird es derselben benannten Eigenschaft des Modells als String zugewiesen? – Craig