ASP.NET MVC5网站开发之用户添加和浏览2(七)

《ASP.NET MVC5网站开发之用户添加和浏览2(七)》是一篇系列文章中的一篇,主要介绍了如何在ASP.NET MVC5网站中实现用户添加和浏览功能。该文章主要分为以下几部分:

  1. 实现用户添加功能。
  2. 实现用户浏览功能。
  3. 使用Bootstrap样式美化界面。

具体攻略如下:

  1. 实现用户添加功能

步骤如下:

  • 在MVC项目的Controller文件夹下创建UserController.cs文件,设置如下代码:
using System.Web.Mvc;
using WebApplication.Models;

namespace WebApplication.Controllers
{
    public class UserController : Controller
    {
        public ActionResult Register()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Register(User userModel)
        {
            if (ModelState.IsValid)
            {
                // 将用户信息存入数据库
                return RedirectToAction("Index", "Home");
            }
            return View(userModel);
        }
    }
}
  • 在Models文件夹下创建User.cs文件,设置如下代码:
using System.ComponentModel.DataAnnotations;

namespace WebApplication.Models
{
    public class User
    {
        [Key]
        public int Id { get; set; }

        [Required(ErrorMessage = "Please enter your name")]
        [StringLength(50)]
        public string Name { get; set; }

        [Required(ErrorMessage = "Please enter your email")]
        [DataType(DataType.EmailAddress)]
        [EmailAddress(ErrorMessage = "Please enter a valid email address")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Please enter your password")]
        [DataType(DataType.Password)]
        [StringLength(100, MinimumLength = 6, ErrorMessage = "Password length must be at least 6 characters")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Compare("Password", ErrorMessage = "Passwords do not match")]
        public string ConfirmPassword { get; set; }
    }
}
  • 在MVC项目的Views文件夹下创建User文件夹,并在该文件夹下创建Register.cshtml文件,设置如下代码:
@model WebApplication.Models.User

@{
    ViewBag.Title = "Register";
}

<h2>@ViewBag.Title</h2>

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-group">
        @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.ConfirmPassword, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.ConfirmPassword, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Register" class="btn btn-default" />
        </div>
    </div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

示例说明:

在注册页面中,使用了Html.EditorFor和Html.ValidationMessageFor等HTML Helper辅助函数,这些函数可以生成表单元素并进行表单验证。

  1. 实现用户浏览功能

步骤如下:

  • 在MVC项目的Controller文件夹下创建UserController.cs文件,设置如下代码:
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using WebApplication.Models;

namespace WebApplication.Controllers
{
    public class UserController : Controller
    {
        private readonly List<User> _users = new List<User>();

        public UserController()
        {
            _users.Add(new User { Id = 1, Name = "User1", Email = "user1@example.com", Password = "123456", ConfirmPassword = "123456" });
            _users.Add(new User { Id = 2, Name = "User2", Email = "user2@example.com", Password = "123456", ConfirmPassword = "123456" });
            _users.Add(new User { Id = 3, Name = "User3", Email = "user3@example.com", Password = "123456", ConfirmPassword = "123456" });
        }

        public ActionResult Index()
        {
            return View(_users);
        }

        public ActionResult Details(int id)
        {
            var user = _users.FirstOrDefault(u => u.Id == id);
            return View(user);
        }
    }
}
  • 在MVC项目的Views文件夹下创建User文件夹,并在该文件夹下创建Index.cshtml文件,设置如下代码:
@model List<WebApplication.Models.User>

@{
    ViewBag.Title = "Index";
}

<h2>@ViewBag.Title</h2>

<p>
    @Html.ActionLink("Create New", "Register")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Email)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Email)
        </td>
        <td>
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>
  • 在MVC项目的Views文件夹下创建User文件夹,并在该文件夹下创建Details.cshtml文件,设置如下代码:
@model WebApplication.Models.User

@{
    ViewBag.Title = "Details";
}

<h2>@ViewBag.Title</h2>

<div>
    <h4>User</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.Name)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.Name)
        </dd>
        <dt>
            @Html.DisplayNameFor(model => model.Email)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.Email)
        </dd>
        <dt>
            @Html.DisplayNameFor(model => model.Password)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.Password)
        </dd>
        <dt>
            @Html.DisplayNameFor(model => model.ConfirmPassword)
        </dt>
        <dd>
            @Html.DisplayFor(model => model.ConfirmPassword)
        </dd>
    </dl>
</div>
<div>
    @Html.ActionLink("Edit", "Edit", new { id = Model.Id }) |
    @Html.ActionLink("Back to List", "Index")
</div>

示例说明:

在用户浏览与详情页面中,使用了Html.DisplayFor和Html.ActionLink等HTML Helper辅助函数,可方便地生成数据展示和链接等元素。

  1. 使用Bootstrap样式美化界面

在视图文件中使用Bootstrap,使网站界面更加美观。示例代码如下:

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-group">
        @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.ConfirmPassword, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.ConfirmPassword, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.ConfirmPassword, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Register" class="btn btn-primary" />
        </div>
    </div>
}

示例说明:

在表单中添加了CSS类“form-control”,使用Bootstrap的表单样式;在提交按钮中添加了CSS类“btn btn-primary”,使用Bootstrap的按钮样式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET MVC5网站开发之用户添加和浏览2(七) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS网页播放声音实现代码兼容各种浏览器

    为了在网页中播放声音,我们可以使用HTML5音频标签或通过JavaScript代码动态创建audio元素。但由于不同的浏览器对HTML5音频支持的兼容性不同,我们需要编写代码以确保在各种浏览器中都能播放声音。 接下来的攻略将展示如何使用JavaScript创建兼容各种浏览器的网页播放声音的代码。 1. 创建声音对象 首先,我们需要创建一个声音对象。要创建声音…

    JavaScript 2023年6月11日
    00
  • Python使用Asyncio进行web编程方法详解

    Python使用Asyncio进行Web编程方法详解 概述 Asyncio是Python 3中内置的异步编程框架,它允许开发者使用协程方式来进行异步编程,以此提供高效的I/O操作和并发处理。在Web编程中,Asyncio也被广泛应用。本篇文章将详细介绍如何使用Asyncio进行Web编程。 使用Asyncio进行Web编程的基本步骤 1. 安装必要的依赖 在…

    JavaScript 2023年5月28日
    00
  • JavaScript style对象与CurrentStyle对象案例详解

    让我们来讲解一下“JavaScript style对象与CurrentStyle对象案例详解”的完整攻略。 什么是style对象? 在前端开发中,style对象是经常用到的一个对象。我们可以使用style对象来获取或修改指定元素的样式属性。通过style对象,我们可以直接通过JavaScript代码来修改网页的样式效果,而无需通过css文件修改。 如何获取s…

    JavaScript 2023年5月27日
    00
  • javascript动态创建及删除元素的方法

    下面我来详细讲解“javascript动态创建及删除元素的方法”的完整攻略。 1. 动态创建元素 1.1 createElement方法 要动态创建元素,首先需要使用document.createElement()方法来创建一个指定类型的HTML元素。例如,如果我们想要创建一个<div>元素,就可以使用如下代码: let divElement =…

    JavaScript 2023年6月10日
    00
  • JS实现网页标题栏显示当前时间和日期的完整代码

    下面我为你讲解一下 JS 实现网页标题栏显示当前时间和日期的完整代码攻略。 首先,我们需要了解两个 Javascript 方法:setInterval() 和 toLocaleTimeString()。 setInterval() 方法会以指定的时间间隔(以毫秒为单位)重复调用某个函数。可用于创建定期执行的函数(也称为时间间隔函数)。 toLocaleTim…

    JavaScript 2023年5月27日
    00
  • 微信小程序保持session会话的方法

    下面我将为你详细介绍微信小程序保持 session 会话的方法。 什么是 session session 是指客户端和服务器之间的交互状态,可以理解为身份验证或登录状态的一种维持方式。常见的维持 session 的方法有 cookie 和 token。 微信小程序 session 微信小程序中,可以通过 wx.request 方法向服务器发送请求并维持 se…

    JavaScript 2023年6月11日
    00
  • JS 数组随机洗牌的实例代码

    让我来详细讲解一下“JS 数组随机洗牌的实例代码”的完整攻略。 什么是数组随机洗牌 数组随机洗牌是指将一个数组中的元素随机打乱顺序的过程。通常用于游戏场景、抽奖等场景。 实现数组随机洗牌的步骤 下面是一份 JS 数组随机洗牌的实例代码,接下来我会详细讲解它: function shuffle(arr) { var len = arr.length; for(…

    JavaScript 2023年5月27日
    00
  • jQuery中json对象的复制方式介绍(数组及对象)

    当我们在编写jQuery程序时,常常需要对JSON对象进行复制的操作,这个过程有时会比较麻烦,因为JSON对象类别繁多,每种类型都需要采用不同的复制方式。 接下来,我将介绍在jQuery中对各种JSON对象进行复制的方式,包括数组和对象。 数组复制 在jQuery中,数组复制有两种方式:浅复制和深复制。 浅复制 浅复制就是将一个数组中的所有元素全部复制到另一…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部