0

MVC フレームワークの RTW 1.0 をインストールしました。私は過去に RC2 を使用してチュートリアルを進めていました。RC2 にはなかった基本的なルーティングが機能しないという問題が発生しました。

VS 2008 で新しい MVC アプリケーションを作成すると、そのままではホームページのルーティングが機能しません。

次の URL がなぜか機能する

http://mydomain/
http://mydomain/Home/Index/1

ただし、以下は機能せず、404 エラーが発生します。

http://mydomain/Home
http://mydomain/Home/Index

私の RegisterRoutes メソッドはデフォルトで、次のようになります

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
            );

        }

私の HomeController.cs は次のようになります

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MyNamespace.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }
}

インデックス ビューは生成されるデフォルトにすぎません

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
</asp:Content>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= Html.Encode(ViewData["Message"]) %></h2>
    <p>
        To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
    </p>
</asp:Content>
4

1 に答える 1

0

問題を追跡することができました。古い W​​eb サイト プロジェクトの IIS 7 でホストしていました。ファンキーな設定があったに違いありません(ただし、統合モードに設定されていました)。だから私がしたことは、新しいウェブサイトとアプリプールを作成することだけで、最初にうまくいきました:)しかし、私には何時間もかかりました!!!

于 2009-03-23T10:01:41.770 に答える