ストアドプロシージャのデータを使用して、ビューページに<select>
ドロップダウンメニューを生成しました。 JavaScriptを使用して、選択した<option>
にアクセスし、テキストを変数に保存しました。今私は別のストアドプロシージャのパラメータとしてそれを使用することができるように私のコントローラにその変数を返す必要があります。ビューからコントローラに変数を渡すにはどうすればいいですか?
は、ここに私のコントローラ、名称「EventsController.cs」
public ActionResult Dropdown(string text)
{
ViewData["ids"] = db.uspGetAllEventIds().ToArray();
Console.WriteLine(text);
return View();
}
だからあなたは、私が第一ストアドプロシージャを実行し、ビューに送信見ることができます。ここで
は、ビューで何が起こるかです:
@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>
だから今私はちょうど私が私が選択しoption
へのアクセス権を持っていることを自分自身に証明するためにこのアラート機能を持っています。私はコントローラに戻すためにFormMethod.Post
を使用する必要があると確信していますが、私はそれまでの参考文献を見つけることができませんでした。
私の変数text
がコントローラに戻されるようにこれをフォーマットするにはどうすればよいですか?
POSTのあなたのコントローラのあなたのアクションメソッドはどこですか? – krillgar
@krillgar投稿する前に私は別のものを持っていましたが、私はそれを削除して私の質問をより理解しやすくしました。それは基本的に私が幸運なしにデータを渡そうとした 'ActionResult'関数でした。 –
どのようにActionメソッドを設定してデータを送信するかを決めました。 – krillgar