【问题标题】:ASP.NET adding a form to Master PageASP.NET 向母版页添加表单
【发布时间】:2013-04-26 08:37:32
【问题描述】:

所以我从来没有真正使用 ASP.NET 编写过网站。我正在尝试将搜索表单添加到我网站的母版页。问题是整个主体都包裹在一个表单标签中,这使得我的新表单的功能不存在。我有一个习惯,就是搞乱我还不明白的事情,使情况变得更糟。所以我想我会征求你的意见,我的想法是:

  • 完全删除 runat="server" 表单标签。
  • 在我的表单之前关闭它并在我的表单末尾替换它。
  • 按钮内的代码(我后来注意到您无法打开。
  • 放弃 ASP.NET 并返回 PHP 哈哈。

希望你能帮忙。

谢谢。

【问题讨论】:

  • 一个页面只有一个表单是 ASP.NET 的设计理念。您应该在这个单一表单中实现搜索功能。
  • 但是,如果您要使用 JSON 并使用 javascript 异步更新搜索的实体,您可以在您的页面上实现一个标有 [WebMethod] 属性的方法,并使用 XmlHttpRequest 对象调用它。

标签: asp.net forms master-pages


【解决方案1】:

母版页会是这样的

  <%@ 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>      

【讨论】:

  • 我希望它出现在母版页上,这样我就不必手动将它放在每个页面上。但我假设这是不可能的?由于我不能使用表单标签,我是否应该在按钮后面放一些 c# 代码以转到结果页面,但是我如何在没有帖子的情况下使用这些信息?
【解决方案2】:

不要将内容添加到母版页(可以,但在本示例中不要),将其添加到内容页 (.aspx)。将表单放在母版页上意味着您不必手动将表单添加到内容页面;它自动在那里。 (母版页上的所有内容都将在内容页上。)

正如 masood 所示,search.aspx(内容页)正在使用母版页,MasterPageFile="~/MasterPage.master"。内容进入内容标签。

【讨论】:

    【解决方案3】:

    当我习惯于用开源语言进行硬编码时,我意识到我使用的是 HTML 特定的语法,这与整个母版页周围的标签相冲突。在使用侧面的工具时,我找到了解决方案。

    谢谢。

    【讨论】:

      【解决方案4】:

      打开 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" %> 
      

      【讨论】:

      • 我知道已经 6 年了,但你说的“绑定”是什么意思?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多