【问题标题】:load a specific page on entering "www.mysite.com/myname" in asp.net在 asp.net 中输入“www.mysite.com/myname”时加载特定页面
【发布时间】:2012-07-07 13:01:15
【问题描述】:

我的要求 - 当网站访问者输入“www.mysite.com/myname”之类的网址并按 Enter 时,我需要加载一个 lookup.aspx 页面。

我该怎么做?

希望得到回应。

提前致谢。

我已经试过了。 web.config 中的代码,但它进入无限循环。

逻辑 - 在 lookup.aspx 的 page_load 上 我正在检查数据库中的“myname”,如果存在,那么我将页面重定向到“Home.aspx” 但如果数据库中不存在“myname”,则重定向到 nomemberfound.aspx 页面。

【问题讨论】:

  • 我已经尝试过 URL 重写,但它进入了无限循环..

标签: asp.net url-rewriting


【解决方案1】:

看看herehere在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;
}

【讨论】:

  • 我们使用的是不支持 MapRoute() 的 .net 框架 3.5。提出任何替代方案。谢谢
【解决方案2】:

您可以让 IIS 使用 URL Rewrite 2.0 来完成。

该页面上有一段视频提供了概述。这是一个非常简单的任务。

【讨论】:

    【解决方案3】:

    在 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
            }
        }
    

    更新:

    这里是很好的article,其中包含有关如何在 .NET Framework 3.5 中执行此操作的示例。希望对您有所帮助!

    【讨论】:

    • 我们使用的是不支持 MapPageRoute() 的 .net 框架 3.5。提出任何替代方案。谢谢
    【解决方案4】:

    我得到了非常简单的解决方案-

    您只需要添加 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多