Проблема ASP.NET MVC 2 с UpdateModel

Я пытаюсь использовать updatemodel (myItem, formcollection) с asp.net mvc 2, но он перестал работать с отслеживанием стека ниже.

   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)

Мое действие похоже на это:

    [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 });
    }

... и моя форма похожа на это:

<% using (Html.BeginForm("Update","Dashboard", FormMethod.Post, new { name = "editForm" } )) %>
<% { %>
    <div>
        <%=Html.EditorForModel() %>
        <input type="submit" value="Save" />
    </div>            
<% } %>
13
задан Marcus 20 December 2009 в 21:16
поделиться

2 ответа

Это подтвержденная ошибка в MVC 2 RC. Если у вас есть источник MVC, вы можете удалить проверку String.IsNullOrEmpty() из FormCollection.GetValue(), перекомпилировать и переустановить. Класс FormCollection находится по адресу src\SystemWebMvc\Mvc\FormCollection.cs. Команда знает об этом и планирует исправление к следующему просмотру

.
19
ответ дан 1 December 2019 в 22:57
поделиться

Здесь была та же проблема при попытке взглянуть на Orchard CMS. Будем надеяться, что они исправят это в ближайшее время.

1
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: