アイテムのリストを含むビューがあります。各アイテムにはテキストボックスとボタンがあります。コントローラ アクションでクリックされたボタンのアイテム ID を取得する最良の方法は何ですか? コントローラー アクションに関連するテキスト ボックスの値が必要なので、アクション リンクを使用できないと思います。
3863 次
3 に答える
2
これを行うにはいくつかの方法があります。JavaScript を使用するものもあれば、使用しないものもあります。個人的には、デザイン自体が JavaScript ベース (ajax の使用など) でない限り、基本的な機能に JavaScript を使用しないことを好みます。
たとえば、各項目を独自の形式で、異なる送信値でラップすることができます。有効な HTML ではないため、フォームをネストしないように注意してください。
例えば:
@using(Html.BeginForm("MyAction", "MyController", new { id=1 })) {
<input type="submit"/>
@Html.TextBox("TheValue", "One")
}
@using(Html.BeginForm("MyAction", "MyController", new { id=2 })) {
<input type="submit"/>
@Html.TextBox("TheValue", "Two")
}
public ActionResult MyAction(int? id, string TheValue) {
// if they click the first one, id is 1, TheValue = "One"
// if they click the second one, id is 2, TheValue = "Two"
}
于 2013-10-06T22:03:53.853 に答える
0
最良のオプションは jquery を使用することですが、c# のみを使用する場合は、次のことをお勧めします。
テキストボックスを生成するためにある種の繰り返しステートメント(forまたはforeach)を使用していると思います。そのため、この新しいフォームにテキストボックスが含まれ、テキストボックスIDを渡すforeachアイテム内にフォームを作成しますフォーム送信。
この擬似コードのようなもの:
foreach(item in array){
<form action="address/"@item.Id>
<input type="text" value=""/>
<input type="submit" value="submit textbox"/>
</>
}
于 2013-10-06T21:39:16.643 に答える