0

私はC#+ MVC3で作業しています。フォームにラジオボタンがありますが、いくつか問題があります。

Index.cshtml には、次のものがあります。

<div class="display-label">
    Label
</div>
<div class="display-field">@Html.RadioButton("rdActive", ((FakeClass)ViewBag.FakeFilter).Situation, "S");

私のコントローラーのインデックスには、次のものがあります。

    ViewBag.FakeFilter = new FakeClass()
    {
        Situacao = (Request.Form["rdActive"] == "" ? null : Request.Form["rdActive"])
    }

そして、私は ArgumentNullPointerException を取得しています

4

2 に答える 2

4

私があなたのエラーを理解しているのは、nullpontier をスローするためです。Request.Form["rdActive"]これは、アクションのコードが渡されたときに空を受け取っているため、ビューバッグに null が返されるためです。

今私が奇妙に思うのは、ヘルパーのオーバーロードが最後のパラメーターでブール値を受け取り、「s」で文字列を渡していることです。

これ

@Html.RadioButton("rdActive", ((FakeClass)ViewBag.FakeFilter).Situation, "S")

する必要があります

@Html.RadioButton("rdActive", ((FakeClass)ViewBag.FakeFilter).Situation, true)

また

@Html.RadioButton("rdActive", ((FakeClass)ViewBag.FakeFilter).Situation, false)

パラメータを確認してください

ここに画像の説明を入力

于 2012-07-12T13:28:31.193 に答える
0

ViewBag がビューで使用できない可能性があります。TempData["FakeFilter"] を使用してみてください。これは、どのビューからでもアクセスでき、読み取り後に削除されます (デフォルト)。

于 2012-07-12T12:56:23.117 に答える