将asp.net MVC从Beta升级到1.0版

时间:2009-05-23 10:01:59

标签: asp.net-mvc updatemodel

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

googed结果并没有给我一些相关的东西:(

b)我的下一步是将应用程序升级到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. 这里改变了什么? (我想主机环境已经改变了一些东西)
  2. 我应该在这里调整一下,不要破坏已实现的功能?

2 个答案:

答案 0 :(得分:3)

UpdateModel(entity, entityform.ToValueProvider());

答案 1 :(得分:1)

a)当我升级我的网络项目时,我注意到web.configs中包含的内容是不同的。请注意,主项目目录和视图内部都有2个web.configs。我建议创建一个新的MVC 1.0项目,并将web.configs与您的beta版本进行比较。

b)我只是使用UpdateModel传入实体,如果你已经将FormCollection传递给你的ActionResult,这将相应地更新它。

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