通过网址

时间:2015-11-26 08:55:19

标签: asp.net url webforms request controls

我目前正在使用我的第一个asp.net WebForms网站。要显示不同的网站,我将控件加载到我的母版页中的占位符。

示例:UserControl uc = this.LoadControl("~/controls/home.ascx") as UserControl;

这超过了我的default.aspx代码隐藏文件。我现在正在努力填写基于URL的另一个控件。我知道你可以获得一个ID(如果my-domain.com/default.aspx?id=1然后显示控制blabla)但我是否有可能读出URL而不是ID字符串?例如:

my-domain.com/home -> this goes over my default.aspx, but shows de home controller 

my-domain.com/contact-> this goes over my default.aspx, but shows de contact controller 

我可以查看它是"/home"然后显示家庭控制吗?

有谁有想法,我怎么能解决这个问题?

谢谢你们:)

以下是一些代码段:

masterpage.master:

  <asp:ContentPlaceHolder id="content" runat="server"></asp:ContentPlaceHolder>

的Default.aspx:

<%@ Page Title="" Language="C#" MasterPageFile="~/masterpage.master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="myproject._default" %>

default.aspx.cs:

public partial class _default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        ContentPlaceHolder content = this.Master.FindControl("content") as ContentPlaceHolder;
        displayControl(content);
    }

    private void displayControl(ContentPlaceHolder content)
    {

        UserControl uc = this.LoadControl("~/controls/home.ascx") as UserControl;

        if ((content != null) && (uc != null))
        {
            content.Controls.Add(uc);
        }            
    }
}

home.ascx:

my HTML-Page

我的文件夹采用以下结构:

  • CSS
  • IMG
  • 的javascript
  • App_Data文件
  • bin
  • OBJ
  • 控制
    • home.aspx
    • contact.aspx ...等。
  • default.aspx(代码隐藏文件.cs)
  • masterpage.master
  • misc:web.config和其他文件和文件夹......

1 个答案:

答案 0 :(得分:0)

如果您希望自己的网站从domain.com/default.aspx?id=1转到domain.com/home或domain.com/login,则需要在网络表单中启用友好网址并设置路线。< / p>

Scott Hanselman在以下链接中进行了一次演练......

http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx