所以我从来没有真正使用 ASP.NET 编写过网站。我正在尝试将搜索表单添加到我网站的母版页。问题是整个主体都包裹在一个表单标签中,这使得我的新表单的功能不存在。我有一个习惯,就是搞乱我还不明白的事情,使情况变得更糟。所以我想我会征求你的意见,我的想法是:
- 完全删除 runat="server" 表单标签。
- 在我的表格之前关闭它并在我的表格末尾替换它。
- 按钮内的代码(我后来注意到你无法打开。
- 放弃 ASP.NET 并返回 PHP 大声笑。
希望你能帮忙。
谢谢。
所以我从来没有真正使用 ASP.NET 编写过网站。我正在尝试将搜索表单添加到我网站的母版页。问题是整个主体都包裹在一个表单标签中,这使得我的新表单的功能不存在。我有一个习惯,就是搞乱我还不明白的事情,使情况变得更糟。所以我想我会征求你的意见,我的想法是:
希望你能帮忙。
谢谢。
母版页将是这样的
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="bodycontent" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
你可以这样写搜索页面
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>
<asp:Content ID="Content1" ContentPlaceHolderID="bodycontent" Runat="Server">
//dnt include form tag here having runat = server
</asp:Content>
打开 Visual Studio 单击文件 -> 新建 -> 网站 -> 空网站。
创建一个MasterPage.master
并将其添加到您的项目中。
例子:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<html>
//.......
</html>
创建一个SearchPage.aspx
并将其与您的母版页绑定。例子:
< Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="MasterPage.aspx.cs" Inherits="MasterPage" Title="Untitled Page" %>
当我习惯于用开源语言进行硬编码时,我意识到我使用的是 HTML 特定的语法,这与整个母版页周围的标签相冲突。在使用侧面的工具时,我找到了我的解决方案。
谢谢你。
不要将内容添加到母版页(您可以,但在本示例中不要),将其添加到内容页 (.aspx)。将表单放在母版页上意味着您不必手动将表单添加到内容页面;它自动在那里。(母版页上的所有内容都将在内容页上。)
正如 masood 所示,search.aspx(内容页)正在使用母版页,MasterPageFile="~/MasterPage.master"。内容进入内容标签。