Ich habe ein Dropdown-Menü <select>
auf meiner Ansichtsseite mit Daten aus einer gespeicherten Prozedur generiert. Mit JavaScript habe ich auf die ausgewählte <option>
zugegriffen und den Text in eine Variable gespeichert. Jetzt muss ich diese Variable an meinen Controller zurücksenden, damit ich sie als Parameter in einer anderen gespeicherten Prozedur verwenden kann.Wie übergebe ich eine Variable von meiner Ansicht an meinen Controller?
Hier ist mein Controller, mit dem Titel „EventsController.cs“
public ActionResult Dropdown(string text)
{
ViewData["ids"] = db.uspGetAllEventIds().ToArray();
Console.WriteLine(text);
return View();
}
So können Sie sehen, ich die erste gespeicherte Prozedur ausführen und es zu der Ansicht senden.
Hier ist, was in der Ansicht passiert:
@model IEnumerable<Heatmap.Models.Event>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<script>
function showValue()
{
var list = document.getElementById("EventId");
var text = list.options[list.selectedIndex].text;
alert(text);
}
</script>
</head>
<body>
<div>
@using (Html.BeginForm("", "", FormMethod.Post))
{
<select id="EventId">
@{
var ids = ViewData["ids"] as string[];
for (var i = 0; i < ids.Length; i++)
{
<option>@ids[i]</option>
}
}
</select>
<input name="text" type="submit" value="Submit" />
<button onclick="showValue()">Click me!</button>
}
</div>
</body>
</html>
So jetzt ich die Alarmfunktion haben, nur um mich zu beweisen, dass ich Zugriff auf die option
, die ich auswählen. Ich bin mir ziemlich sicher, dass ich FormMethod.Post
verwenden muss, um es zurück zum Controller zu bekommen, aber ich konnte bis jetzt keine hilfreiche Hinweise finden.
Wie formatiere ich dies, so dass meine Variable text
wird zurück in den Controller gesendet?
Wo ist Ihre Aktionsmethode in Ihrem Controller für den POST? – krillgar
@krillgar Ich hatte eine separate vor dem Posten, aber ich löschte es, um meine Frage verständlicher zu machen. Es war im Grunde nur eine "ActionResult" -Funktion, die ich versucht, ohne Glück die Daten zu übergeben –
Und wie Sie diese Aktion Methode einrichten festgelegt, wie Sie die Daten an sie senden. – krillgar