为Go Web App 创建一个主页面

大多数web 都有一个相同的布局。这个布局可能包含一个header或者footer,甚至可能包含一个导航菜单。Go的标准库提供一个简单的方式来创建这些基本元素,通过被不同的页面重用,创建出模板页的效果。

这个简单的例子来解释如何实现的:

让我们来创建一个简单的包含两个view的web ,一个是 main 一个是about。这两个view都有相同的header和footer。

header模板的代码如下:

{{ define "header" }}
<!DOCTYPE html>
<html>
    <head>
        <title>{{.Title}}</title>
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css">
        <style type="text/css">
 body {padding-bottom: 70px;}
 .content {margin:10px;}
        </style>
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
 <div class="navbar-header">
 <a class="navbar-brand" href="http://www.toutiao.com/">Go </a>
 </div>
 <div class="collapse navbar-collapse navbar-ex1-collapse">  
 <ul class="nav navbar-nav">
 <li><a href="http://www.toutiao.com/">Main</a></li>
 <li><a href="http://www.toutiao.com/about">About</a></li>
 </ul>
 </div>
        </nav>
{{ end }}

footer模板的代码如下:

{{ define "footer" }}
        <p class="navbar-text navbar-fixed-bottom">Go Rocks!</p>    
        <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    </body>
</html>
{{ end }}

main 模板的代码如下:

{{define "main"}}
{{template "header" .}}
<div class="content">
    <h2>Main</h2>
    <div>This is the Main page</div>
</div>
{{template "footer" .}}
{{end}}

about 模板的代码如下:

{{define "about"}}
{{template "header" .}}
<div class="content">
    <h2>About</h2>
    <div>This is the About page</div>
</div>
{{template "footer" .}}
{{end}}

服务器代码如下:

package main

import (
    "html/template"
    "net/http"
)

//Compile templates on start
var templates=template.Must(template.ParseFiles("header.html", "footer.html", "main.html", "about.html"))

//A Page structure
type Page struct {
    Title string
}

//Display the named template
func display(w http.ResponseWriter, tmpl string, data interface{}) {
    templates.ExecuteTemplate(w, tmpl, data)
}

//The handlers.
func mainHandler(w http.ResponseWriter, r *http.Request) {
    display(w, "main", &Page{Title: "Home"})
}

func aboutHandler(w http.ResponseWriter, r *http.Request) {
    display(w, "about", &Page{Title: "About"})
}

func main {
    http.HandleFunc("/", mainHandler)
    http.HandleFunc("/about", aboutHandler)

    //Listen on port 8080
    http.ListenAndServe(":8080", nil)
}

每一个模板页都有一个的命令来定义模板的名字。main和about页面通过来包含header和footer。”.” 出入上下来命名模板。现在,不管main和about页面如何执行,他们的页面都会包含header和footer。

两个页面的结果如下:

为Go Web  创建一个主页面

为Go Web  创建一个主页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要打开 Visual Studio 并创建一个的 ASP.NET Core Web 应用程序项目。在创建项目时,你可以选择 Web 应用程序模板和 ASP.NET Core 版本。 接下来,你需要添加一个登录页面。你可以在项目中创建一个的视图文件夹,然后在其中创建一个名为 Login.cshtml 的视图文件。 在 Login.cshtml 文件中,你可以使用 HTML 和 Razor 语法来创建一个基本的登录表单。例如,以下是一个简单的示例: ```html @page @model LoginModel <form method="post"> <div> <label for="username">Username:</label> <input type="text" id="username" name="username" /> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password" /> </div> <div> <button type="submit">Login</button> </div> </form> ``` 在上面的示例中,我们创建了一个包含用户名和密码字段的表单,并添加了一个提交按钮。 接下来,你需要创建一个 LoginModel 类来处理表单提交。你可以在项目中创建一个名为 Login.cshtml.cs 的代码文件,并在其中定义 LoginModel 类。以下是一个简单的示例: ```csharp public class LoginModel : PageModel { [BindProperty] public string Username { get; set; } [BindProperty] public string Password { get; set; } public void OnPost() { if (Username == "admin" && Password == "password") { // 登录成功,重定向到页 Response.Redirect("/"); } else { // 登录失败,显示错误消息 ModelState.AddModelError("", "Invalid username or password."); } } } ``` 在上面的示例中,我们定义了一个 LoginModel 类,并添加了两个属性来表示用户名和密码。在 OnPost 方法中,我们检查用户名和密码是否正确,如果正确,我们重定向到页,否则我们添加一个错误消息到 ModelState 对象中,让它显示在页面上。 最后,你需要在 Startup.cs 文件中配置路由,以便用户可以访问登录页面。以下是一个简单的示例: ```csharp public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); } ``` 在上面的示例中,我们使用 MapControllerRoute 方法来配置路由,以便用户可以访问名为 Login 的控制器和 Login 方法。例如,如果你的项目在本地运行,你可以访问 http://localhost:5000/Login 来访问登录页面。 这是一个基本的 ASP.NET Core Web 应用程序登录页面的创建过程。你可以根据你的需求来添加更多的功能和验证步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值