asp.net mvc传递数据sql server
时间: 2024-12-31 17:38:35 浏览: 11
### 如何在 ASP.NET MVC 中向 SQL Server 传递数据
#### 创建模型类
为了实现数据的持久化存储,在应用程序中定义一个表示实体的 C# 类。例如,创建 `Movie` 模型来保存电影的信息。
```csharp
public class Movie
{
public int ID { get; set; }
public string Title { get; set; } = String.Empty;
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; } = String.Empty;
public decimal Price { get; set; }
}
```
#### 配置数据库上下文
接着配置 Entity Framework 的 DbContext 来管理与数据库之间的交互。这通常涉及到继承自 `Microsoft.EntityFrameworkCore.DbContext` 并重写 OnConfiguring 方法指定连接字符串[^1]。
```csharp
using Microsoft.EntityFrameworkCore;
public class ApplicationDbContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.UseSqlServer(
"Data Source=(localdb)\\MSSQLLocalDB;" +
"Initial Catalog=aspnet-MvcMovie;" +
"Integrated Security=True");
}
```
#### 添加控制器方法处理表单提交
当用户填写 HTML 表单并点击提交按钮时,浏览器会发送 HTTP POST 请求给服务器端的一个特定 URL 地址对应的 Action Method 处理函数接收这些输入的数据对象实例作为参数自动绑定映射成相应类型变量供后续业务逻辑调用操作使用[^3]。
```csharp
// GET: Movies/Create
public IActionResult Create()
{
return View();
}
// POST: Movies/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("ID,Title,ReleaseDate,Genre,Price")] Movie movie)
{
if (ModelState.IsValid)
{
_context.Add(movie);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(movie);
}
```
#### 构建视图模板收集用户输入
最后一步是在 Views 文件夹下新建相应的 Razor 页面文件用于渲染前端界面展示字段控件让用户可以方便快捷地录入想要存入数据库里的各项属性值[^2]。
```html
@model MvcMovie.Models.Movie
<form asp-action="Create">
<div class="form-group">
<label asp-for="Title" class="control-label"></label>
<input asp-for="Title" class="form-control" />
<span asp-validation-for="Title" class="text-danger"></span>
</div>
<!-- More form fields -->
<button type="submit" class="btn btn-primary">Submit</button>
</form>
```
阅读全文