代码之家  ›  专栏  ›  技术社区  ›  MichaelGG

基于Mono的ASP.NET MVC预览版5

  •  10
  • MichaelGG  · 技术社区  · 16 年前

    有没有人知道如何在Mono 2.0上使用当前版本的ASP.NET MVC(预览版5)?有关于旧版本的信息(预览2,可能是预览3),但我没有看到关于使预览5实际工作的详细信息。

    这个 Mono Project Roadmap 表示Mono 2.4的ASP.NET 3.5(明年)。在那之前,有没有关于如何让这个有用的想法?

    更多细节:基本MVC预览5模板似乎可以工作,只要我避开根目录。如果我请求根,我会得到:

    Server Error in '/' Application
    The virtual path '' maps to another application.
    
    Description: HTTP 500. Error processing request.
    
    Stack Trace:
    
    System.Web.HttpException: The virtual path '' maps to another application.
      at System.Web.HttpContext.RewritePath (System.String filePath, System.String pathInfo, System.String queryString, Boolean setClientFilePath) [0x00000] 
      at System.Web.HttpContext.RewritePath (System.String path, Boolean rebaseClientPath) [0x00000] 
      at System.Web.HttpContext.RewritePath (System.String path) [0x00000] 
      at MvcApplication1._Default.Page_Load (System.Object sender, System.EventArgs e) [0x00000] 
      at System.Web.UI.Control.OnLoad (System.EventArgs e) [0x00000] 
      at System.Web.UI.Control.LoadRecursive () [0x00000] 
      at System.Web.UI.Page.ProcessLoad () [0x00000] 
      at System.Web.UI.Page.ProcessPostData () [0x00000] 
      at System.Web.UI.Page.InternalProcessRequest () [0x00000] 
      at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00000] 
    
    Version information: Mono Version: 2.0.50727.42; ASP.NET Version: 2.0.50727.42
    
    3 回复  |  直到 16 年前
        1
  •  11
  •   MichaelGG    16 年前

    一个潜在的问题是重写路径有某种缺陷,所以要避免这种情况。将重写路径(Request.ApplicationPath)更改为:

    HttpContext.Current.RewritePath("/Home/Index");
    

    似乎解决了这个问题,至少到目前为止,演示程序还可以正常工作。

        2
  •  4
  •   garethstokes garethstokes    15 年前

    Asp.Net MVC 1.0将与mono的2.4分支一起使用,但您仍需要修复default.aspx.cs页面加载中的重写路径

        3
  •  1
  •   Paco    16 年前

    您使用的是svn的Mono还是stable? 什么样的操作系统?

    HttpContext.Current.RewritePath(Request.ApplicationPath);
     ((IHttpHandler)new MvcHttpHandler()).ProcessRequest(HttpContext.Current);
    

    我有时也需要在windows中使用它。