MVC和Asp.net混合应用程序的起点



我有一个MVC和Asp.net混合应用程序,我有一个控制器,但它没有任何home控制器,我不想从MVC视图启动应用程序,我需要从默认启动。aspx

当我写"default."Aspx "在url的末尾,它工作得很好。但是当我写mysite.com/

时,它不起作用。

我也有一个web服务,但它现在不工作。因为这样的路由:"mywebservice。asmx/mymethodname"

如何设置全局变量。asax吗?在这个组合中运行需要什么配置?

你可以在web应用程序的子文件夹中创建MVC应用程序,然后移动任何全局。

你只需要更新你的路由,如果你的MVC应用是在MVC文件夹中创建的,它可能看起来像这样:

           routes.MapRoute(
           "MVC default",                                              
           "MVC/default.aspx",                                         
            new { controller = "Home", action = "Index", id = "" }  
          );
        routes.MapRoute(
           "Services",
           "MVC/{controller}/{action}/{id}",
           new { controller = "Home", action = "Index", id = "" }
            );
编辑:

实际上你需要映射确保你的视图也被正确映射,你可以通过创建一个快速的自定义视图引擎来做到这一点:

        public class CustomViewEngine : System.Web.Mvc.WebFormViewEngine
{
    public CustomViewEngine()
    {
        base.ViewLocationFormats = new string[]
        {
          "~/MVC/Views/{1}/{0}.aspx",
          "~/MVC/Views/{1}/{0}.ascx",
          "~/MVC/Views/Shared/{0}.aspx",
          "~/MVC/Views/Shared/{0}.ascx"
        };
           base.PartialViewLocationFormats = new string[] {
         "~/MVC/Views/{1}/{0}.aspx",
          "~/MVC/Views/{1}/{0}.ascx",
          "~/MVC/Views/Shared/{0}.aspx",
          "~/MVC/Views/Shared/{0}.ascx"
        };
           base.MasterLocationFormats = new string[]
        {
          "~/MVC/Views/{1}/{0}.master",
          "~/MVC/Views/Shared/{0}.master"
        };
    }
}

,然后注册到你的global.asax:

        System.Web.Mvc.ViewEngines.Engines.Clear();
        System.Web.Mvc.ViewEngines.Engines.Add(new CustomViewEngine());

最新更新