2011-09-21 39 views
28

Sto cercando di caricare i dati di un utente modificarlo e quindi salvarlo. questo ha lavorato e im non del tutto sicuro di quello che ho cambiato, ma ora sto ottenendo il seguente errore ...Il valore MVC3 non può essere nullo. Nome parametro: valore

Value cannot be null. 
Parameter name: value 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentNullException: Value cannot be null. 
Parameter name: value 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[ArgumentNullException: Value cannot be null. 
Parameter name: value] 
    System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value) +51903 
    System.Web.Mvc.<Validate>d__1.MoveNext() +135 
    System.Web.Mvc.<Validate>d__5.MoveNext() +318 
    System.Web.Mvc.DefaultModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) +139 
    System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +66 
    System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +1367 
    System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +449 
    System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317 
    System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 
    System.Web.Mvc.Controller.ExecuteCore() +116 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 
    System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8897857 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 


    public ActionResult EditDetails() 
    { 
     int id = Convert.ToInt32(Session["user"]); 
     S1_Customers u1_users = storeDB.S1_Customers.Find(id); 
     return View(u1_users); 
    } 

    [HttpPost] 
    public ActionResult EditDetails(S1_Customers u1_users) 
    { 
     var Pcode = ""; 
     if (ModelState.IsValid) 
     { 

Non sto raggiungendo anche ModelState.IsValid quando scatto presentare

+2

Inserisci il tuo codice modello e l'azione che stai chiamando per salvarlo. Sembra che ci siano alcuni problemi con la convalida, ma sono necessarie più informazioni .... Perché questa domanda ha un aspetto negativo votazione? –

risposta

24

Hai modifica qualsiasi nomi? I nomi dei moduli devono mappare 1-1 con i parametri Action. In questo caso, il parametro "name" non è stato passato all'azione del controller, quindi è null.

selvaggio indovinare, bisogno di maggiori informazioni (firma del metodo di azione)

+10

Ahh sì stupido era perché l'ho fatto ... [Display (Name = "")] public string Addrs {get; impostato; } – Beginner

+0

:) ben contento che sia corretto. –

+5

Non sono sicuro che si tratti dello stesso problema, ma ottengo la stessa eccezione se applico un membro con un attributo StringLength e applichiamo anche [DisplayName ("")]. –

2

Potrebbe probabilmente essere che il vostro modello ha una proprietà che restituisce un valore non nullable, come int, DateTime, double ecc E se l'utente sta aggiornando la voce che probabilmente non stai memorizzando quel valore in un campo nascosto o da qualche parte, quindi quando i dati vengono restituiti quella particolare proprietà è nulla. O posto che la proprietà in un campo nascosto o fare il vostro annullabile proprietà in un modello cambiando int a int ?, ecc

16

riceverete questo errore se si dispone di alcune proprietà decorate da DisplayAttribute con nome vuoto ([DisplayAttribute(Name = "", Description = "Any description")])

+0

Non posso credere di aver passato così tanto tempo prima di venire a questa risposta. –

10

Se si utilizza [Visualizza (Nome = "")] come per le proprietà del modello, Ciò causerà l'errore che si ottiene. Per risolvere questo problema, è necessario evitare di utilizzare l'attributo del nome visualizzato vuoto.

[Display(Name = "")] //this line is the cause of error 
public string PromotionCode { get; set; } 
Problemi correlati