0

.Net MVC 4 を使用しています。

2 つの別個の Html.BeginForm ステートメントにラップされた 1 つのビューに 2 つのボタンがあります。1 つ目は表示され、2 つ目は表示されません (投稿後の最初のボタン ロジックが成功するかどうかによって異なります)。

最初に押されたボタンがコントローラーメソッドに入った後、2番目のボタンを表示するにはどうすればよいですか? このメソッドは基本的に、2 番目のボタンを表示できるようになったことを示しています。ビューを返しています。ビューに戻ったら、その2番目のボタンを表示できるように設定できるviewbag変数(またはそのようなもの)はありますか?

2 番目のボタンは、Id 値を持つ単なる入力ボタンです。

4

2 に答える 2

1

最初の方法: 上記で説明したとおりですが、残念ながら、たとえば部分的なビューがあり、そこにある何かに基づいて何かを表示または非表示にしたい場合は機能しません。

2 番目の方法: 最初のページの読み込み、ボタンが表示されます。

<input id='btnAdd' type='button' value='Add' style='display:block;'/>

ページ/部分ビューでの何らかのアクションに基づく

<script>
  function disableAdd() {
  $('#btnAdd').hide();
}
</script>

※スタイルシートで可視性を使用している場合、jqueryは非表示/表示できませんのでご注意ください。

于 2014-02-12T17:42:59.650 に答える
1

ビューに戻ったら、その2番目のボタンを表示できるように設定できるviewbag変数(またはそのようなもの)はありますか?

ええ、しかし、私は ViewBag の大ファンではないので、モデルにブール値のプロパティを追加し、このプロパティを POST コントローラー アクションで設定することをお勧めします。

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    model.IsSecondButtonVisible = true;
    return View(model);
}

そして、ビュー内:

@if (Model.IsSecondButtonVisible)
{
    <input type="button" value="the second button" />
}
于 2012-10-04T12:33:37.077 に答える