Я понятия не имею, откуда взялся параметр value
.System.ArgumentNullException: значение не может быть нулевым. Имя параметра: значение
Вид: Ajax.BeginForm
запрос:
@Html.DropDownListFor(model => model.EXPENSE_REPORTABLE, new SelectList(
new[]
{
new { Value = "true", Text = "Yes" },
new { Value = "false", Text = "No" },
},
"Value",
"Text",
Model
),
"-- Select --")
После того как я не выбрать да или нет в выпадающем списке, частичный вид воздастся для отображения данных в WebGrid (grid
является экземпляром WebGrid
). Один из столбцов бросает ошибку:
grid.Column("expenseReportable","Expense Reportable?",format:@<text>
<span class="display-mode">@item.EXPENSE_REPORTABLE </span> <!--error here -->
@Html.RadioButton("GridCol_Expense", (Nullable<bool>)item.EXPENSE_REPORTABLE, true, new { @class="edit-mode"}) Yes
@Html.RadioButton("GridCol_Expense", (Nullable<bool>)item.EXPENSE_REPORTABLE, false, new { @class="edit-mode"}) No
</text>, style:"col1Width"),
Свойство модели:
public Nullable <bool> EXPENSE_REPORTABLE {get; set;}
InnerException: null
Сообщение исключения:
Value cannot be null. Parameter name: value
ошибки, скорее всего, потому, что значение '' item.EXPENSE_REPORTABLE' является null' и брошено на следующие линиях (2 параметра 'RadioButton()' не может быть ' null'). Но код для радиобарабанов не имеет никакого смысла, потому что вы создаете 2 переключателя с одинаковым значением. Вы хотите, чтобы радиокнопки вернули «true» или «false»? (в этом случае у вас есть второй и третий параметры неправильного пути) –
Нет, вторым параметром является значение переключателя. Если значение 'item.EXPENSE_REPORTABLE' говорит' true', тогда вы генерируете обе переключатели как '' (что немного бессмысленно) - но если значение 'item.EXPENSE_REPORTABLE' равно' null ', тогда будет выбрано исключение. –
переключатели на самом деле принадлежат классу css 'edit-mode', который не будет отображаться, если вы не нажмете кнопку редактирования. –