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 返回给 viewbag。

现在我看到奇怪的是,帮助程序的重载在最后一个参数中接收一个布尔值,而你正在传递一个带有“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 回答