2

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

グーグされた結果は私に関連する何かを与えません:(

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、 "/ Accepts IValueProvider or DefaultValueProvider /");

質問:

  1. ここで何が変わったのですか?(hostng環境が何かを変えたと思います)
  2. すでに実装されている機能を壊さないように、ここで何を調整する必要がありますか?
4

2 に答える 2

3
UpdateModel(entity, entityform.ToValueProvider());
于 2009-05-23T10:28:13.543 に答える
1

a)Webプロジェクトをアップグレードしたとき、web.configsに含まれているものが異なることに気づきました。メインプロジェクトディレクトリとビュー内の両方に2つのweb.configがあることに注意してください。新しいMVC1.0プロジェクトを作成し、web.configsをベータ版と比較することをお勧めします。

b)エンティティを渡すUpdateModelを使用するだけで、FormCollectionをActionResultに渡した場合は、それに応じて更新されます。

public ActionResult Edit(FormCollection entityform)
{{
    var entity = repository.GetById(1);
    UpdateModel(entity);
于 2009-05-23T13:21:55.983 に答える