ASP.NET MVC5网站开发项目框架(二)的完整攻略, 包含以下几个步骤:
步骤一:创建ASP.NET MVC5项目
首先,我们需要创建一个ASP.NET MVC5项目。在Visual Studio中,选择File->New->Project,选择ASP.NET Web Application模板,然后在下一个页面中选择MVC模板,设置项目名称和路径,最后单击“创建”按钮即可创建项目。此时,我们将得到一个默认的MVC应用程序。
步骤二:添加实体类和数据访问层
- 添加实体类
在Models文件夹下创建一个类文件,用于定义我们的实体类。比如,我们可以定义一个名为“Person”的类,包含Id、Name、Age三个属性。
public class Person
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
- 添加数据访问层
在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);
}
}
步骤三: 添加控制器和视图
- 添加控制器
我们需要添加一个控制器,来支持我们的视图和数据访问层对于数据的管理。请在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");
}
}
- 添加视图
我们需要添加以下三个视图:
- 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>
}
步骤四: 测试应用
- 启动应用程序
在Visual Studio工具栏中单击“播放”按钮以启动应用程序,然后在Web浏览器中打开"http://localhost:xxxxx/Person"(其中“xxxxx”为你的本地web服务器端口号)。
- 进行测试
网站成功启动之后,您就可以使用页面上的链接来创建、编辑、删除和查看Person实例的信息。并且,在操作期间,相关数据将由我们自动封装在我们已经创建的PersonDal数据访问层类对象中。
示例操作:
- 单击“Create New”链接并填写表单,以创建一个新的Person实例。
- 单击创建后,返回人员列表页面,并检查列表中是否显示了您刚才创建的实例。
- 选择您想要编辑的人员,并单击“Edit”链接,对该实例的属性进行修改。
- 单击“Save”保存修改后,返回人员列表页面,并检查列表中是否显示了您刚才所修改的信息。
- 选择您想要删除的Person实例,并单击“Delete”链接,进行删除操作。
- 删除后返回人员列表页面,并检查列表是否不再显示刚才删除的Person实例。
通过以上示例操作,我们已经成功创建了一个简单的ASP.NET MVC应用程序,其中包含了支持实体类和数据访问层的控制器,以及用于用户交互和数据验证的视图。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET MVC5网站开发项目框架(二) - Python技术站