ASP.NET MVC5网站开发项目框架(二)

ASP.NET MVC5网站开发项目框架(二)的完整攻略, 包含以下几个步骤:

步骤一:创建ASP.NET MVC5项目

首先,我们需要创建一个ASP.NET MVC5项目。在Visual Studio中,选择File->New->Project,选择ASP.NET Web Application模板,然后在下一个页面中选择MVC模板,设置项目名称和路径,最后单击“创建”按钮即可创建项目。此时,我们将得到一个默认的MVC应用程序。

步骤二:添加实体类和数据访问层

  1. 添加实体类

在Models文件夹下创建一个类文件,用于定义我们的实体类。比如,我们可以定义一个名为“Person”的类,包含Id、Name、Age三个属性。

    public class Person
    {
        [Key]
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }
    }
  1. 添加数据访问层

在Models文件夹下,创建一个名为“Dal”的新文件夹,然后再创建一个名为“PersonDal”的数据访问层类文件,用于实现数据的增删改查等操作。代码实现如下:

    public class PersonDal
    {
        private ApplicationDbContext db = new ApplicationDbContext();

        public void Add(Person person)
        {
            db.People.Add(person);
            db.SaveChanges();
        }

        public void Delete(int id)
        {
            var person = db.People.Find(id);
            db.People.Remove(person);
            db.SaveChanges();
        }

        public void Edit(Person person)
        {
            db.Entry(person).State = EntityState.Modified;
            db.SaveChanges();
        }

        public IQueryable<Person> GetAll()
        {
            return db.People;
        }

        public Person GetById(int id)
        {
            return db.People.Find(id);
        }
    }

步骤三: 添加控制器和视图

  1. 添加控制器

我们需要添加一个控制器,来支持我们的视图和数据访问层对于数据的管理。请在Controllers文件夹中创建一个名为“PersonController”的控制器,并以以下代码实现:

    public class PersonController : Controller
    {
        private readonly PersonDal _personDal;

        public PersonController()
        {
            _personDal = new PersonDal();
        }

        // GET: Person
        public ActionResult Index()
        {
            var persons = _personDal.GetAll().ToList();
            return View(persons);
        }

        // GET: Person/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: Person/Create
        [HttpPost]
        public ActionResult Create(Person person)
        {
            if (ModelState.IsValid)
            {
                _personDal.Add(person);
                return RedirectToAction("Index");
            }

            return View(person);
        }

        // GET: Person/Edit/5
        public ActionResult Edit(int id)
        {
            var person = _personDal.GetById(id);

            if (person == null)
            {
                return HttpNotFound();
            }

            return View(person);
        }

        // POST: Person/Edit/5
        [HttpPost]
        public ActionResult Edit(Person person)
        {
            if (ModelState.IsValid)
            {
                _personDal.Edit(person);
                return RedirectToAction("Index");
            }

            return View(person);
        }

        // GET: Person/Delete/5
        public ActionResult Delete(int id)
        {
            var person = _personDal.GetById(id);

            if (person == null)
            {
                return HttpNotFound();
            }

            return View(person);
        }

        // POST: Person/Delete/5
        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            _personDal.Delete(id);
            return RedirectToAction("Index");
        }
    }
  1. 添加视图

我们需要添加以下三个视图:

  • Index.cshtml:用于显示所有Person实例列表
  • Create.cshtml:用于创建新Person实例
  • Edit.cshtml:用于编辑Person实例

具体实现如下:

Index.cshtml

    @model IEnumerable<WebApplication1.Models.Person>

    @{
        ViewBag.Title = "Person List";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

    <h2>@ViewBag.Title</h2>

    <p>@Html.ActionLink("Create New", "Create")</p>

    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Name)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Age)
            </th>
            <th></th>
        </tr>

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

Create.cshtml

    @model WebApplication1.Models.Person

    @{
        ViewBag.Title = "Create Person";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

    <h2>@ViewBag.Title</h2>

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

        <div class="form-horizontal">
            <h4>Person</h4>
            <hr />
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            <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.Age, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
                </div>
            </div>

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

Edit.cshtml

    @model WebApplication1.Models.Person

    @{
        ViewBag.Title = "Edit Person";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }

    <h2>@ViewBag.Title</h2>

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

        <div class="form-horizontal">
            <h4>Person</h4>
            <hr />
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            <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.Age, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
                </div>
            </div>

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

步骤四: 测试应用

  1. 启动应用程序

在Visual Studio工具栏中单击“播放”按钮以启动应用程序,然后在Web浏览器中打开"http://localhost:xxxxx/Person"(其中“xxxxx”为你的本地web服务器端口号)。

  1. 进行测试

网站成功启动之后,您就可以使用页面上的链接来创建、编辑、删除和查看Person实例的信息。并且,在操作期间,相关数据将由我们自动封装在我们已经创建的PersonDal数据访问层类对象中。

示例操作:

  • 单击“Create New”链接并填写表单,以创建一个新的Person实例。
  • 单击创建后,返回人员列表页面,并检查列表中是否显示了您刚才创建的实例。
  • 选择您想要编辑的人员,并单击“Edit”链接,对该实例的属性进行修改。
  • 单击“Save”保存修改后,返回人员列表页面,并检查列表中是否显示了您刚才所修改的信息。
  • 选择您想要删除的Person实例,并单击“Delete”链接,进行删除操作。
  • 删除后返回人员列表页面,并检查列表是否不再显示刚才删除的Person实例。

通过以上示例操作,我们已经成功创建了一个简单的ASP.NET MVC应用程序,其中包含了支持实体类和数据访问层的控制器,以及用于用户交互和数据验证的视图。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET MVC5网站开发项目框架(二) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • c#异步操作async await状态机的总结(推荐)

    关于”c#异步操作async await状态机的总结(推荐)”这篇文章,我们首先需要了解一些基础知识。 什么是异步操作? 异步操作通常是指当一个操作(例如读取文件或从数据库中检索数据)正在执行时,代码不会阻塞(即等待该操作完成后才继续执行),而是在操作执行的同时继续执行其他代码。异步操作对于UI线程来说尤为重要,因为我们不希望用户界面因为耗时的操作而变得不响…

    C# 2023年6月6日
    00
  • c#实现的操作oracle通用类

    下面是详细讲解c#实现的操作oracle通用类的完整攻略。请按照以下步骤进行: 1. 下载与安装Oracle Database 在开始使用c#操作Oracle之前,需要先下载并安装Oracle Database。Oracle官方网站提供了免费的Oracle Express版本供个人和小型团队使用,你可以根据自己的需要去下载并安装。安装过程中需要注意选择“OD…

    C# 2023年6月6日
    00
  • C# 基于消息发布订阅模型的示例(下)

    我来为您详细讲解一下“C# 基于消息发布订阅模型的示例(下)” 的完整攻略。 什么是消息发布订阅模型? 消息发布订阅模型是一种消息传递模式,它包含一个发布者和许多订阅者。发布者通常不知道有哪些订阅者,而订阅者则可以动态地订阅和取消订阅发布者。 消息发布订阅模型的优势 较容易增加或删除订阅者,无需修改发布者代码。 可以实现一对多的关系,即一个事件可以有多个订阅…

    C# 2023年6月1日
    00
  • C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法

    下面是关于“C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法”的完整攻略,包含两个示例。 1. C#中序列化实现深拷贝 在C#中,可以使用序列化实现深拷贝。以下是一个示例: public static T DeepCopy<T>(T obj) { using (MemoryStream stream = new MemoryS…

    C# 2023年5月15日
    00
  • C#找出字符串中第一个字母并大写的方法

    要找出字符串中第一个字母并大写,可以使用C#中的字符串处理函数和char类型的特性。下面是具体的方法: 1.使用SubString和ToUpper函数找到第一个字符并大写 可以使用SubString函数来截取第一个字符,再使用ToUpper函数将该字符大写。示例代码如下: string str = "apple"; char firstC…

    C# 2023年6月8日
    00
  • C# 游戏外挂实现核心代码

    C# 游戏外挂实现核心代码,通常包含以下几个步骤: 1. 找到游戏内存地址 首先需要找到游戏内存地址,这通常需要使用一些常见的内存查找技术,例如静态地址查找、动态地址查找等等。找到游戏内存地址之后,我们就可以通过读写内存操作实现对游戏数据的修改和访问。 2. 代码注入 代码注入是指将自己编写的代码注入到游戏进程中,从而实现对游戏的控制。这可以通过使用一些第三…

    C# 2023年6月3日
    00
  • C#实现获取文件夹大小的方法

    下面是详细讲解“C#实现获取文件夹大小的方法”的完整攻略。 1. 前置知识 在学习本教程之前,需要掌握以下内容: C#编程语言基础知识 .NET框架中的IO命名空间中相关的类和方法 2. 实现思路 获取文件夹大小的方法,一般都是在遍历文件夹中的文件和子文件夹,累计每个文件大小,再求和。因此,我们需要用到递归算法和IO命名空间中的相关类和方法。 以下是获取文件…

    C# 2023年6月1日
    00
  • 如何使用C#将Tensorflow训练的.pb文件用在生产环境详解

    我来为您详细讲解如何使用C#将Tensorflow训练的.pb文件用在生产环境。 背景介绍 Tensorflow是目前深度学习领域广泛使用的一个强大的开源库,它提供了许多的高级API和工具来帮助我们训练和使用深度学习模型。在Tensorflow中,模型可以被保存成一个.pb文件,该文件包含了模型的结构和参数信息,可以在需要的时候被载入到内存中进行推断。 在实…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部