2009-12-20 18 views
13

Estoy tratando de usar el modelo de actualización (myItem, formcollection) con asp.net mvc 2 pero falla con el seguimiento de pila a continuación.ASP.NET MVC 2 problema con UpdateModel

at System.Web.Mvc.FormCollection.GetValue(String name) 
    at System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    at System.Web.Mvc.Controller.TryUpdateModel[TModel](TModel model, String prefix, String[] includeProperties, String[] excludeProperties, IValueProvider valueProvider) 
    at System.Web.Mvc.Controller.TryUpdateModel[TModel](TModel model, IValueProvider valueProvider) 
    at Stormbreaker.Dashboard.Controllers.DashboardController`1.Update(FormCollection collection) in D:\Projects\SVN\Stormbreaker\trunk\Stormbreaker.Dashboard\Controllers\DashboardController.cs:line 23 
    at lambda_method(ExecutionScope , ControllerBase , Object[]) 
    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 

Mi acción es el siguiente:

[AcceptVerbs(HttpVerbs.Post)] 
    [ValidateInput(false)] 
    public ActionResult Update(FormCollection collection) { 
     UpdateModel(CurrentItem, collection); 
     CurrentItem = (T)_repository.Update(CurrentItem); 
     return RedirectToAction("edit", new { pagePath = CurrentItem.UrlSegment }); 
    } 

... y mi forma se parece a esto:

<% using (Html.BeginForm("Update","Dashboard", FormMethod.Post, new { name = "editForm" })) %> 
<% { %> 
    <div> 
     <%=Html.EditorForModel() %> 
     <input type="submit" value="Save" /> 
    </div>    
<% } %> 
+0

¿Qué excepción se arroja? NRE? – alexn

+0

Aquí está la excepción: El valor no puede ser nulo o estar vacío. Nombre del parámetro: nombre Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código. Detalles de la excepción: System.ArgumentException: el valor no puede ser nulo o estar vacío. Nombre del parámetro: nombre – Marcus

+0

Por favor, publique su modelo. – jfar

Respuesta

19

Este es un error confirmado en MVC 2 RC. Si tiene the MVC source, puede eliminar la comprobación String.IsNullOrEmpty() de FormCollection.GetValue(), volver a compilar y volver a desplegar. La clase FormCollection está en src \ SystemWebMvc \ Mvc \ FormCollection.cs. El equipo es consciente de ello y se planea una solución para la próxima vista previa.

+0

Ok, ¡gracias por el aviso! – Marcus

+0

Me lleva un tiempo encontrar esta publicación, pero me alegra saber knwo. –

1

Tuve el mismo problema aquí al tratar de ver Orchard CMS. Esperemos que lo arreglen pronto.

Cuestiones relacionadas