MVC和Asp.net混合应用程序的起点
本文关键字:应用程序 起点 混合 net Asp MVC | 更新日期: 2023-09-27 17:51:23
我有一个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());