Обновите asp.net MVC с бета-версии до версии 1.0 - PullRequest
2 голосов
/ 23 мая 2009

a) В данный момент у меня есть развернутое приложение в прямом эфире на бета-версии asp.mvc ... но несколько дней назад оно отказывается работать со следующей ошибкой:

Метод не найден: 'System.String System.Web.Mvc.Html.LinkExtensions.RouteLink (System.Web.Mvc.HtmlHelper, System.String, System.Web.Routing.RouteValueDictionary, System.Web.Routing.RouteValueDictionary) ).

Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.3053; ASP.NET версия: 2.0.50727.3053

полученные результаты не дают мне что-то релевантное: (

б) следующим шагом было обновление приложения до asp.net mvc 1.0 ... но здесь у меня новая проблема: если в бета-версии у меня было:

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Edit(FormCollection entityform)
    {
        var entity = repository.GetById(1);

        UpdateModel(entity, entityform);
        repository.Update(entity);

        return View("Index", entity);

    }

тогда теперь UpdateModel (map, "/ принимает IValueProvider или DefaultValueProvider /");

Вопросы:

  1. что здесь изменилось? (Я полагаю, что среда hostng что-то изменила)
  2. что я должен здесь настроить, чтобы не нарушать уже реализованный функционал?

Ответы [ 2 ]

3 голосов
/ 23 мая 2009
UpdateModel(entity, entityform.ToValueProvider());
1 голос
/ 23 мая 2009

а) Когда я обновил свои веб-проекты, я заметил, что то, что содержится в файле web.configs, отличается. Обратите внимание, что есть 2 файла web.configs, как в основной директории проекта, так и внутри Views. Я бы предложил создать новый проект MVC 1.0 и сравнить web.configs с вашей бета-версией.

b) Я просто использую UpdateModel, передавая объект, и он будет обновляться соответствующим образом, если вы передали в FormCollection свой ActionResult.

public ActionResult Edit(FormCollection entityform)
{
    var entity = repository.GetById(1);
    UpdateModel(entity);
...