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日

相关文章

  • 20个常见的JavaScript数组操作总结

    20个常用的JavaScript数组操作总结 JavaScript数组是一种包持有有序数据的变量类型,提供了许多方便的方法,可以对数组进行各种操作。下面的这20个数组操作是在编写JavaScript时几乎无法避免的,熟练掌握这些操作可以让你高效地使用数组。 1. 创建数组 创建一个JavaScript数组最简单的方法就是使用方括号([])来包含一个或多个元素…

    JavaScript 2023年5月27日
    00
  • js左右弹性滚动对联广告代码分享

    下面是 js 左右弹性滚动对联广告代码分享的攻略: 一、代码实现思路 实现 js 左右弹性滚动对联广告的代码,整体思路如下: 使用 CSS 布局将广告左右对联 使用 JavaScript 监测浏览器窗口大小,以动态设置广告左右对联的位置 实现左右弹性滚动效果,让广告在页面上滑动 下面将分别讲解具体的实现过程。 二、HTML 结构 首先需要在 HTML 文件中…

    JavaScript 2023年6月11日
    00
  • 使用JavaScript进行表单校验功能

    下面是“使用JavaScript进行表单校验功能”的完整攻略,包含以下几个步骤: 1. 界面设计 首先需要针对需要进行表单校验的页面进行合理的界面设计,包括表单中需要填写的各种项以及提示信息等等。需要根据实际情况来进行定制,保证界面简洁、明了,并且易于理解和操作。 2. 校验规则制定 制定合理的校验规则可以有效地保证表单填写的正确性。针对不同项的填写内容,可…

    JavaScript 2023年6月10日
    00
  • JavaScript 反射学习技巧

    JavaScript 反射学习技巧 JavaScript 中的反射指的是通过有限的编程接口来获取对象的信息并进行相关的操作。反射是学习 JavaScript 的重要技巧之一,它可以帮助开发人员更好地理解代码和调试代码。 在本文中,我们将介绍 JavaScript 反射的相关概念、反射的作用和常用的反射技巧。 JavaScript 反射概念 反射是一种通过代码…

    JavaScript 2023年6月10日
    00
  • js解决url传递中文参数乱码问题的方法详解

    我来详细为您讲解 “js解决url传递中文参数乱码问题的方法详解”。 1. 问题解决的原因和背景 在URL中传递中文参数时,常常会出现乱码的问题。这是因为URL中只能包含ASCII字符集(包括大小写字母、数字和特殊字符),而中文字符并不属于ASCII字符集。因此,在URL中传递中文参数时,必须对中文字符进行编码,将其转换为ASCII码。 一般情况下,我们会使…

    JavaScript 2023年5月19日
    00
  • 详解微信小程序胶囊按钮返回|首页自定义导航栏功能

    下面是详解微信小程序胶囊按钮返回|首页自定义导航栏功能的完整攻略: 一、胶囊按钮返回 微信小程序提供了一个叫做胶囊按钮的组件,位于小程序右上角,它包含了小程序的图标和名称,并且还具备返回功能。我们可以使用它来方便地返回上一个页面,以下是实现方法: 首先,在页面的顶部布局一个用于显示胶囊按钮的容器: <!– wxml –> <view c…

    JavaScript 2023年6月11日
    00
  • js校验表单后提交表单的三种方法总结

    JS校验表单后提交表单有三种方法总结,分别是: 1.提交前在JS验证,如果无误则提交。 2.在提交按钮上绑定函数,在函数中判断表单是否填写正确。 3.在表单提交时,拦截表单提交请求,验证表单数据后提交。 下面我将会对上述每个方法进行详细讲解,并提供示例: 1.提交前在JS验证,如果无误则提交 这个方法是最基本的方法,它的核心是在提交表单之前进行验证。我们可以…

    JavaScript 2023年6月10日
    00
  • 一个JavaScript函数把URL参数解析成Json对象

    要把URL参数解析成Json对象,可以使用JavaScript的内置方法URLSearchParams,该方法可用于解析URL查询字符串中的参数。具体步骤如下。 步骤一:获取URL参数字符串 使用window.location.search获取URL的查询字符串,然后去除开头的问号“?”,得到纯参数字符串。 const searchParams = wind…

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