2016-06-16 2 views
0

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

+0

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) –

+0

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. –

+0

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. –

Répondre

0

Ajoutez le code ci-dessous dans votre fichier Global.asax .

Vous verrez l'exception dans le détail, ce qui s'est mal passé.

void Application_Error(object sender, EventArgs e) 
{ // Attach break point here. 
    Exception TheError = Server.GetLastError(); //After execution of this line just check TheError variable. It will show you the details. 
    Server.ClearError(); 
} 

Je soupçonne que vos objets item/grid pourraient être nul ou peut a une propriété nulle. Assurez-vous simplement qu'il n'est pas nul en déboguant le code du serveur lui-même.

Il est également compliqué de deviner ce qui ne va pas de votre côté et la conversation dure aussi très longtemps. Essayez cette solution.

Hope this helps :)