2

ジェネリックコントローラークラスを作成しました

namespace OxygenFramework.MvcController
{
  public class MvcController<TEntity> : Controller
    where TEntity : class
  {
    public void UpdateModelState(TEntity t)
    {
        ...
    }
  }
}

それから私は以下のようにそれを使用しました

namespace LeitnerMVC.Controllers
  {
    public class HomeController : MvcController<Account>
     {
    //
    // GET: /Home/
    public ActionResult Index()
    {
        UpdateModelState(t);
        return View();
    }
  }
}

しかし、mvcアプリケーションページを実行すると、このエラーが表示されます

The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies)     could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Webで検索した後、それを解決する方法を見つけました

  void Application_Start(object sender, EventArgs e)
    {                 
    ControllerBuilder.Current.DefaultNamespaces.Add("OxygenFramework.MvcController");
    }

しかし、上記の解決策は私にとってはうまくいきません!!! Http 404エラーが再び表示されます

MvcController ページの代わりに Controller を使用すると、問題なく表示されます !!!

誰でも私を助けることができますか?

アップデート :

多くの調査の結果、この問題が発生する理由は理解できましたが、それでも解決方法はわかりません。MvcController のソース コードをフレームワーク アセンブリ (OxygenFramework.MvcController) から移動して MVC プロジェクトに移動すると、MvcController は機能しますが、OxygenFramework アセンブリから MvcController を参照すると、MVC に 404 エラーが表示されます !!! MvcController が別のアセンブリにあるためにこの問題が発生することはわかっていますが、この問題を解決する方法はわかりません

注意: MvcController の一般的な実装のみが OxygenFramework アセンブリにあり、すべてのコントローラーは既定のコントローラー フォルダーにあります。

4

1 に答える 1

3

多くの調査の後、私は@Agatに感謝したい問題を見つけました:)

しかし解決策: フレームワークで System.Web.Mvc.dll バージョン 4.0 を使用しましたが、MvcApplication で System.Web.Mvc.dll 5.0 を使用しました。この干渉により、継承から 404 エラーが発生します:D

于 2013-11-10T11:10:05.333 に答える