web-dev-qa-db-ja.com

ASP.NETでデフォルトページを設定する方法

web.configにデフォルトページを設定できるセクションまたはコードはありますか?

たとえば、人々が最初に私のウェブサイトにアクセスするとき、CreateThing.aspxではなくDefault.aspxを見るようにします。

私がすでに知っている解決策:

  1. このコード行をDefault.aspxPage_Loadイベントに=> Response.Redirect("CreateThings.aspx")入れますが、このメソッドは本当に素朴です。

  2. IIS(デフォルトのページ構成)を使用できますが、ASP.NETアプリケーションで同じことをやりたいです。

  3. これは今のところ別の解決策かもしれません:

    <defaultDocument>
        <files>
            <clear />
            <add value="Default.aspx" />
            <add value="Default.htm" />
            <add value="Default.asp" />
            <add value="index.htm" />
            <add value="index.html" />
            <add value="iisstart.htm" />
        </files>
    </defaultDocument>
    
126
Tarik

IIS 7またはIIS 7.5を使用する場合は、使用できます

<system.webServer>
  <defaultDocument>
    <files>
      <clear />
      <add value="CreateThing.aspx" />
    </files>
  </defaultDocument>
</system.webServer>

http://www.iis.net/ConfigReference/system.webServer/defaultDocument

236
David Glenn

ヒント#84:ご存知ですか... Visual Web DeveloperでWebサイトのスタートページを設定する方法?

開始ページにするページを右クリックし、「開始ページとして設定」と言うだけです。

以下のAdam Tuliper-MSFTのコメントで述べたように、これはデバッグではなく展開のためにのみ機能します。

23
DavidTheDev

Default.aspxをHttpHandler routeとしてマップし、HttpHandler内からCreateThings.aspxにリダイレクトします。

<add verb="GET" path="default.aspx" type="RedirectHandler"/>

Default.aspxがアプリケーションルートに物理的に存在しないことを確認してください。物理的に存在する場合、HttpHandlerは実行する機会を与えられません。物理ファイルはHttpHandlerマッピングをオーバーライドします。

さらに、default.aspx以外のページでこれを再利用できます。

<add verb="GET" path="index.aspx" type="RedirectHandler"/>

// App_CodeのRedirectHandler.cs

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

/// <summary>
/// Summary description for RedirectHandler
/// </summary>
public class RedirectHandler : IHttpHandler
{
    public RedirectHandler()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    #region IHttpHandler Members

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.Redirect("CreateThings.aspx");
        context.Response.End();
    }

    #endregion
}

フォーム認証を使用している場合、次のコードを試すことができます。

<authentication mode="Forms">
<forms name=".FORM" loginUrl="Login.aspx" defaultUrl="CreateThings.aspx" protection="All" timeout="30" path="/"> 
</forms>
</authentication>
4
Zooking

Web.configを使用して、IISのデフォルトのドキュメント設定をオーバーライドできます

<system.webServer>
    <defaultDocument>
      <files>
        <clear />
        <add value="DefaultPageToBeSet.aspx" />
      </files>
    </defaultDocument>
  </system.webServer>

または、IISを使用して、参照用のリンクを参照してください http://www.iis.net/configreference/system.webserver/defaultdocument

3
Mahesh Malpani

webサイトでログインページを使用している場合は、web.configファイルに移動します

<authentication mode="Forms">
  <forms loginUrl="login.aspx" defaultUrl="index.aspx"  >
    </forms>
</authentication>

認証タグを上記に置き換えます(index.aspxがスタートアップページになります)

そしてもう1つ、これをweb.configファイルに書き込みます

<configuration>
   <system.webServer>
   <defaultDocument>
    <files>
     <clear />
     <add value="index.aspx" />
    </files>
  </defaultDocument>
  </system.webServer>

  <location path="index.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
   </system.web>
  </location>
</configuration>
3
JD-V

上記のソリューションをすべて実行しましたが、うまくいきませんでした。

私のデフォルトページはaspxページではなく、htmlページでした。

この記事は問題を解決しました。 https://weblog.west-wind.com/posts/2013/aug/15/iis-default-documents-vs-aspnet-mvc-routes

基本的に、\ App_Start\RouteConfig.csファイルに次の行を追加する必要がありました。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("");   // This was the line I had to add here!

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

これが誰かを助けることを願っています、答えを見つけるのにかなり時間がかかりました。

1
david wendelken

私は次の方法を使用することを好みます:

system.webServer>
  <defaultDocument>
    <files>
      <clear />
      <add value="CreateThing.aspx" />
    </files>
  </defaultDocument>
</system.webServer>
1