【发布时间】:2016-02-29 06:52:26
【问题描述】:
我目前在我的第一个 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"然后显示home-control吗?
有谁知道,我该如何解决这个问题?
谢谢大家:)
这里有几个sn-ps的代码:
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
- 斌
- 对象
- 控制
- home.aspx
- contact.aspx ...等
- default.aspx(带有文件.cs后面的代码)
- masterpage.master
- 杂项:web.config 和其他文件和文件夹...
【问题讨论】:
-
我认为这是不可能的。你可以使用查询字符串来解决这个问题。如果你愿意,我可以帮助你查询字符串
-
@Nitin Alapati 确定为什么不这样做。我只是在寻找一种很好地绑定控件的好方法
标签: asp.net url webforms request controls