用asp.net+MVC+EF和SQL server写一个增删改查和登录并验证项目
时间: 2023-11-28 21:47:08 浏览: 96
.NET+MVC+EF增删查改
好的,下面是一个简单的示例:
1. 创建一个 ASP.NET MVC 项目
2. 在 Models 文件夹下创建一个名为 User.cs 的类,表示用户模型:
```csharp
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
```
3. 在 Controllers 文件夹下创建一个名为 UserController.cs 的控制器,用于处理用户相关的逻辑:
```csharp
public class UserController : Controller
{
private readonly ApplicationDbContext _context;
public UserController(ApplicationDbContext context)
{
_context = context;
}
// GET: User
public ActionResult Index()
{
var users = _context.Users.ToList();
return View(users);
}
// GET: User/Create
public ActionResult Create()
{
return View();
}
// POST: User/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(User user)
{
if (ModelState.IsValid)
{
_context.Users.Add(user);
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
// GET: User/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = _context.Users.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
// POST: User/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
_context.Entry(user).State = EntityState.Modified;
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
// GET: User/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = _context.Users.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
// POST: User/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
var user = _context.Users.Find(id);
_context.Users.Remove(user);
_context.SaveChanges();
return RedirectToAction("Index");
}
// GET: User/Login
public ActionResult Login()
{
return View();
}
// POST: User/Login
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(string name, string password)
{
var user = _context.Users.FirstOrDefault(u => u.Name == name && u.Password == password);
if (user == null)
{
ModelState.AddModelError("", "用户名或密码错误");
return View();
}
Session["UserId"] = user.Id;
return RedirectToAction("Index");
}
// GET: User/Logout
public ActionResult Logout()
{
Session.Clear();
return RedirectToAction("Index");
}
}
```
4. 创建视图文件夹,分别在 Views/User 文件夹下创建 Index.cshtml、Create.cshtml、Edit.cshtml、Delete.cshtml、Login.cshtml 文件,用于展示用户列表、添加用户、编辑用户、删除用户和登录页面。
5. 在 Startup.cs 中配置数据库连接:
```csharp
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// ...
}
```
6. 在 appsettings.json 中配置数据库连接字符串:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDb;Trusted_Connection=True;MultipleActiveResultSets=true"
},
// ...
}
```
7. 运行项目,即可进行增删改查和登录操作。
注意:上述示例中使用了 Entity Framework Core 进行数据访问,需要先安装 Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.EntityFrameworkCore.Tools NuGet 包。另外,为了简化示例,没有进行身份验证和授权,实际项目中需要进行身份验证和授权才能保证数据安全。
阅读全文