Je n'ai aucune idée d'où vient le paramètre value
.System.ArgumentNullException: La valeur ne peut pas être nulle. Nom du paramètre: valeur
Vue: Ajax.BeginForm
demande:
@Html.DropDownListFor(model => model.EXPENSE_REPORTABLE, new SelectList(
new[]
{
new { Value = "true", Text = "Yes" },
new { Value = "false", Text = "No" },
},
"Value",
"Text",
Model
),
"-- Select --")
Après avoir choisi oui ou non dans la liste déroulante, une vue partielle sera rendu pour l'affichage des données dans un WebGrid (grid
est une instance de WebGrid
). L'une des colonnes jette l'erreur:
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"),
Modèle propriété:
public Nullable <bool> EXPENSE_REPORTABLE {get; set;}
InnerException: null
Exception Message:
Value cannot be null. Parameter name: value
L'erreur est très probablement parce que la valeur de '' item.EXPENSE_REPORTABLE' est null' et est jeté sur les lignes suivantes (le 2e paramètre de 'RadioButton()' ne peut pas être ' null'). Mais le code pour les boutons de radio n'a aucun sens de toute façon parce que vous créez 2 boutons radio avec la même valeur. Souhaitez-vous que les boutons radio renvoient 'true' ou' false'? (dans ce cas, vous avez les mauvais paramètres 2 et 3) –
Non, le 2ème paramètre est la valeur du bouton radio. Si la valeur de 'item.EXPENSE_REPORTABLE' est 'true', alors vous générez les deux boutons radio comme' '(ce qui est un peu inutile) - mais si la valeur de 'item.EXPENSE_REPORTABLE' est' null' alors une exception sera levée. –
Les boutons radio appartiennent en fait à la classe css 'edit-mode' qui ne sera pas affichée si vous n'appuyez pas sur le bouton d'édition. –