1

我以前从未使用过母版页,只完成了几个大型 MVC 3 项目和许多 Asp.NET“网站”电子邮件表单。我想要做的是将 ColdFusion 中的应用程序转换为 ASP.NET。我有 20 个独立的子站点,它们都从一个公共数据库中提取人们的信息。在 ColdFusion 中,我只是让这 20 个页面中的每一页设置一个变量,然后包含一个主 ColdFusion 文件,该文件采用该变量并显示适当的人员列表。

在 ASP.NET 中,我不能包含。我没有使用 WebForms,所以 #include 不在窗口中。我已阅读有关使用母版页的信息,但我可以跨项目使用它们吗?我正在可视化创建一个“主”项目,该项目基于输入变量获取数据,然后是 20 个简单、非常轻量级(但完全独立)的页面,其中包含/显示来自主项目的信息。我不想为此创建 20 个项目,每个项目都包含一个公共库,因为这意味着如果我需要更新某些内容,我必须发布所有 10 个项目,这是我想避免的。

如果不进行 Web 窗体项目和#include .aspx 文件,这是否可行?我现在的文件布局是主项目在 /sites/masterproject 和子站点就像 /sites/site1/directory,/sites/site2/directory,所以这就是为什么我认为这需要是单独的,希望是一个包含包含而不是 20 个单独项目的简单页面。

4

3 回答 3

1

尝试这个:

<!-- #include file ="mypage.cshtml " -->
于 2012-08-27T18:04:54.073 回答
0

在 .aspx 页面中,您可以使用 @Page 指令中的 MasterPageFile 属性来指定母版页路径。

因此,使用 VS2008 中的默认项目模板,您的页面中会出现如下内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" MasterPageFile="../../masterproject/site.master" %>

(只需指定正确的相对路径,绝对路径也可能会完成这项工作)

于 2012-08-27T18:09:00.123 回答
0

在 .net 中创建相同效果的方法之一是创建并正确使用 Asp.Net 用户控件。http://msdn.microsoft.com/en-us/library/26db8ysc(v=vs.85).aspx。它们几乎是 HTML 代码片段,也可以包含 .Net 代码,稍后您可以简单地将其拖放到其他页面中,结果 HTML 将始终相同,或者也可以是动态的。人们使用它的方式与他们在其他技术中使用的方式相同。

祝你好运。

于 2012-08-27T18:15:54.160 回答