-2

私の要件 - サイト訪問者が「www.mysite.com/myname」のような URL を入力して Enter キーを押すと、lookup.aspx ページをロードする必要があります。

どうやってやるの?

対応希望。

前もって感謝します。

フォローしてみました。web.config のコードですが、無限ループに入ります。

ロジック - lookup.aspx の page_load で、DB で「myname」をチェックしています。それが存在する場合は、ページを「Home.aspx」にリダイレクトしますが、「myname」が DB に存在しない場合は、nomemberfound.aspx ページにリダイレクトします。

4

4 に答える 4

0

上記の非常に簡単な解決策を得ました-

foll を追加するだけです。"" の下の web.config のコード

<rewrite>
        <rules>
            <rule name="RewriteASPX">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{URL}" pattern="WebResource.axd" negate="true"/>                        
                    <add input="{URL}" pattern="ScriptResource.axd" negate="true"/>                     
                    <add input="{URL}" pattern=".js" negate="true"/>
                </conditions>
                <action type="Rewrite" url="memberlogin.aspx?member={R:0}" />
            </rule>
        </rules>
    </rewrite>
于 2012-07-27T07:56:02.777 に答える
0

asp.net でのルーティング/URL 書き換えについては、こちらこちらをご覧ください。

パラメータなしの例を次に示します。

 void RegisterRoutes(RouteCollection routes)
    {
       routes.MapRoute(
       "My Route", //Route name
       "myname", //URL without parameters
       "~lookup.aspx" //The asp.net page
    );
    }
    void Application_Start()
    {
      RegisterRoutes(RouteTable.Routes);//Register route on startup
    }

パラメータを受け入れる場合は、これを使用します。

"myname/{param}" instead of `"myname"` in the above code.

コードビハインドから値を取得します

void Page_Load(object sender, EventArgs e)
{
     string param=Page.RouteData.Values["param"] as string;
}
于 2012-07-07T06:46:07.360 に答える
0

global.asax 内

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    RouteTable.Routes.MapPageRoute("SomeRoute",
    "/{name}",
    "~/lookup.aspx");
}  

lookup.aspx で名前を取得するには:

string name = Page.RouteData.Values["name"] as string;
    if (name != null)
    {
        if (name == "somename")
        {
           //Do something
        }
    }

アップデート:

.NET Framework 3.5 でそれを行う方法の例を含む素晴らしい記事を次に示します。それが役に立てば幸い!

于 2012-07-07T06:46:37.283 に答える
0

URL Rewrite 2.0を使用して IIS にそれを実行させることができます。

そのページに概要を説明するビデオがあります。とても簡単な作業です。

于 2012-07-08T06:12:17.157 に答える