我知道我之前已经问过这个问题,而且我知道有很多资源可以描述这项技术,但我不能为我的生活做出努力。
我首先创建了一个简单的WebForms应用程序。
然后我添加了Views和Controllers文件夹。 然后,我将主页和共享文件夹添加到视图中,并添加了一个Index.aspx和一个site.master文件。
我创建了HomeController.cs文件。
然后我对web.config进行了更改,并将web.config添加到views文件夹中。
然后我对global.asax页面进行了更改。
整个事情编译,路线似乎已注册,但我无法打开主页/索引页面。
我总是得到“HTTP错误404 - 找不到”
有没有人真的设法做到这一点?哦,我们在这里使用IIS6。
以下代码
全局
public static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
}
的Web.Config
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
</namespaces>
</pages>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
家庭控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
}
主页视图
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MVCSite.master" Inherits="System.Web.Mvc.ViewPage"%>
<script runat="server">
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
MVC Home Page
<%= Html.TextBox("txtTest") %>
<%= Html.ActionLink("About Page", "About") %>
</asp:Content>
答案 0 :(得分:1)
我会采用另一种方式创建一个MVC应用程序,然后添加您需要的webforms。更简单,因为默认的MVC应用程序已经为您设置了所有必要的位。
您需要创建一个单独的文件夹,您的网络格式将存在。然后,您可以根据需要在路由引擎中包含/排除文件夹。
答案 1 :(得分:1)
原来,该网站需要成为一个Web应用程序。
我还需要将以下内容添加到web.config;
中<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing"/>
感谢并向所有想要帮助的人致以+1。
答案 2 :(得分:0)