我正在使用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
答案 0 :(得分:4)
根据我对你的错误的理解,它会抛出Nullpontier,因为你在Request.Form["rdActive"]
中收到空,所以当代码传递给action时,返回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)
检查参数
答案 1 :(得分:0)
可能ViewBag在您的视图中不可用,尝试使用可从任何视图访问的TempData [“FakeFilter”]并在您阅读后删除(默认情况下)