当前位置: 首页 > wzjs >正文

网站建设湛江防控措施持续优化

网站建设湛江,防控措施持续优化,鹤壁做网站价格,网站页面设计报价模板.NET MVC(Model-View-Controller)是微软推出的基于 Model-View-Controller 设计模式的 Web 应用框架,属于 ASP.NET Core 的重要组成部分。其核心目标是通过清晰的分层架构实现 高内聚、低耦合 的开发模式,适用于构建可扩展的企业级…

.NET MVC(Model-View-Controller)是微软推出的基于 Model-View-Controller 设计模式的 Web 应用框架,属于 ASP.NET Core 的重要组成部分。其核心目标是通过清晰的分层架构实现 高内聚、低耦合 的开发模式,适用于构建可扩展的企业级应用程序。

 Model(模型层)

  • 职责
    负责业务逻辑处理、数据访问与验证,通常与数据库交互(通过 ORM 工具如 Entity Framework)。

  • View(视图层)

  • 职责
    负责用户界面渲染,通常使用 Razor 语法(.cshtml 文件)动态生成 HTML。

Controller(控制器层)

  • 职责
    处理 HTTP 请求、协调 Model 和 View,实现业务逻辑的入口。

Model

namespace MvcMovie.Models
{public class ErrorViewModel{public string? RequestId { get; set; }public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);}
}
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;namespace MvcMovie.Models;public class Movie
{public int Id { get; set; }[StringLength(60, MinimumLength = 3)][Required]public string? Title { get; set; }[Display(Name = "Release Date")][DataType(DataType.Date)]public DateTime ReleaseDate { get; set; }[Range(1, 100)][DataType(DataType.Currency)][Column(TypeName = "decimal(18, 2)")]public decimal Price { get; set; }[RegularExpression(@"^[A-Z]+[a-zA-Z\s]*$")][Required][StringLength(30)]public string? Genre { get; set; }[RegularExpression(@"^[A-Z]+[a-zA-Z0-9""'\s-]*$")][StringLength(5)][Required]public string? Rating { get; set; }
}
using Microsoft.AspNetCore.Mvc.Rendering;namespace MvcMovie.Models;public class MovieGenreViewModel
{public List<Movie>? Movies { get; set; }public SelectList? Genres { get; set; }public string? MovieGenre { get; set; }public string? SearchString { get; set; }
}
using Microsoft.EntityFrameworkCore;
using MvcMovie.Data;namespace MvcMovie.Models;public static class SeedData
{public static void Initialize(IServiceProvider serviceProvider){using (var context = new MvcMovieContext(serviceProvider.GetRequiredService<DbContextOptions<MvcMovieContext>>())){// Look for any movies.if (context.Movie.Any()){return;   // DB has been seeded}context.Movie.AddRange(new Movie{Title = "When Harry Met Sally",ReleaseDate = DateTime.Parse("1989-2-12").ToUniversalTime(),Genre = "Romantic Comedy",Rating = "R",Price = 7.99M},new Movie{Title = "Ghostbusters ",ReleaseDate = DateTime.Parse("1984-3-13").ToUniversalTime(),Genre = "Comedy",Rating = "R",Price = 8.99M},new Movie{Title = "Ghostbusters 2",ReleaseDate = DateTime.Parse("1986-2-23").ToUniversalTime(),Genre = "Comedy",Rating = "R",Price = 9.99M},new Movie{Title = "Rio Bravo",ReleaseDate = DateTime.Parse("1959-4-15").ToUniversalTime(),Genre = "Western",Rating = "R",Price = 3.99M});context.SaveChanges();}}
}

View

部分view代码,完整代码在文末获取。

@model MvcMovie.Models.Movie@{ViewData["Title"] = "Create";
}<h1>Create</h1><h4>Movie</h4>
<hr />
<div class="row"><div class="col-md-4"><form asp-action="Create"><div asp-validation-summary="ModelOnly" class="text-danger"></div><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><div class="form-group"><label asp-for="Rating" class="control-label"></label><input asp-for="Rating" class="form-control" /><span asp-validation-for="Rating" class="text-danger"></span></div><div class="form-group"><label asp-for="ReleaseDate" class="control-label"></label><input asp-for="ReleaseDate" class="form-control" /><span asp-validation-for="ReleaseDate" class="text-danger"></span></div><div class="form-group"><label asp-for="Genre" class="control-label"></label><input asp-for="Genre" class="form-control" /><span asp-validation-for="Genre" class="text-danger"></span></div><div class="form-group"><label asp-for="Price" class="control-label"></label><input asp-for="Price" class="form-control" /><span asp-validation-for="Price" class="text-danger"></span></div><div class="form-group"><input type="submit" value="Create" class="btn btn-primary" /></div></form></div>
</div><div><a asp-action="Index">Back to List</a>
</div>@section Scripts {@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Controller

using Microsoft.AspNetCore.Mvc;namespace MvcMovie.Controllers;public class HelloWorldController : Controller
{public IActionResult Index(){return View();}public IActionResult Welcome(string name, int numTimes = 1){ViewData["Message"] = "Hello " + name;ViewData["NumTimes"] = numTimes;return View();}
}

using Microsoft.AspNetCore.Mvc;
using MvcMovie.Models;
using System.Diagnostics;namespace MvcMovie.Controllers
{public class HomeController : Controller{private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}public IActionResult Index(){return View();}public IActionResult Privacy(){return View();}[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]public IActionResult Error(){return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using MvcMovie.Data;
using MvcMovie.Models;namespace MvcMovie.Controllers
{public class MoviesController : Controller{private readonly MvcMovieContext _context;public MoviesController(MvcMovieContext context){_context = context;}// GET: Moviespublic async Task<IActionResult> Index(string movieGenre, string searchString){if (_context.Movie == null){return Problem("Entity set 'MvcMovieContext.Movie'  is null.");}// Use LINQ to get list of genres.IQueryable<string> genreQuery = from m in _context.Movieorderby m.Genreselect m.Genre;var movies = from m in _context.Movieselect m;if (!string.IsNullOrEmpty(searchString)){movies = movies.Where(s => s.Title!.ToUpper().Contains(searchString.ToUpper()));}if (!string.IsNullOrEmpty(movieGenre)){movies = movies.Where(x => x.Genre == movieGenre);}var movieGenreVM = new MovieGenreViewModel{Genres = new SelectList(await genreQuery.Distinct().ToListAsync()),Movies = await movies.ToListAsync()};return View(movieGenreVM);}// GET: Movies/Details/5public async Task<IActionResult> Details(int? id){if (id == null){return NotFound();}var movie = await _context.Movie.FirstOrDefaultAsync(m => m.Id == id);if (movie == null){return NotFound();}return View(movie);}// GET: Movies/Createpublic IActionResult Create(){return View();}// POST: Movies/Create// To protect from overposting attacks, enable the specific properties you want to bind to.// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> Create([Bind("Id,Title,ReleaseDate,Genre,Price,Rating")] Movie movie){if (ModelState.IsValid){movie.ReleaseDate = movie.ReleaseDate.ToUniversalTime();_context.Add(movie);await _context.SaveChangesAsync();return RedirectToAction(nameof(Index));}return View(movie);}// GET: Movies/Edit/5public async Task<IActionResult> Edit(int? id){if (id == null){return NotFound();}var movie = await _context.Movie.FindAsync(id);if (movie == null){return NotFound();}return View(movie);}// POST: Movies/Edit/5// To protect from overposting attacks, enable the specific properties you want to bind to.// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.[HttpPost][ValidateAntiForgeryToken]public async Task<IActionResult> Edit(int id, [Bind("Id,Title,ReleaseDate,Genre,Price,Rating")] Movie movie){if (id != movie.Id){return NotFound();}if (ModelState.IsValid){try{_context.Update(movie);await _context.SaveChangesAsync();}catch (DbUpdateConcurrencyException){if (!MovieExists(movie.Id)){return NotFound();}else{throw;}}return RedirectToAction(nameof(Index));}return View(movie);}// GET: Movies/Delete/5public async Task<IActionResult> Delete(int? id){if (id == null){return NotFound();}var movie = await _context.Movie.FirstOrDefaultAsync(m => m.Id == id);if (movie == null){return NotFound();}return View(movie);}// POST: Movies/Delete/5[HttpPost, ActionName("Delete")][ValidateAntiForgeryToken]public async Task<IActionResult> DeleteConfirmed(int id){var movie = await _context.Movie.FindAsync(id);if (movie != null){_context.Movie.Remove(movie);}await _context.SaveChangesAsync();return RedirectToAction(nameof(Index));}private bool MovieExists(int id){return _context.Movie.Any(e => e.Id == id);}}
}

完整代码:

https://download.csdn.net/download/XiaoWang_csdn/90418392

http://www.dtcms.com/wzjs/277685.html

相关文章:

  • 建设部设计规范网站网络营销的模式有哪些?
  • 河南网站制作价格头条搜索
  • 网站开发工程师需要具备的综合素质seo优化排名经验
  • 收费用的网站怎么做最近五天的新闻大事
  • 百度网站公司信息推广怎么做推广有奖励的app平台
  • 网站栏目设置说明软文世界官网
  • 郑州营销型网站制作教程好看的html网页
  • 青海公路建设信用信息服务网站自己怎么开网站
  • 校园二手网站开发与设计任务书开网站需要多少钱
  • 手机网站转微信小程序产品怎么在网上推广
  • 建宁建设局网站制作一个网站的全过程
  • 淘宝客 网站备案友情链接怎么做
  • 饭店网站建设策划方案大数据精准营销案例
  • 北京网站设计制作关键词优化网络营销的十种方法
  • 做兽药网站用什么图片好楚雄今日头条新闻
  • 龙岗企业网站制作公司优化推广网站seo
  • 服务器网站慢的原因信息流广告投放流程
  • 公司的网站建设费会计分录广告推广接单平台
  • 网站建设本科毕业论文广州营销型网站
  • 电商网站里的水果图片怎么做的重庆网站seo搜索引擎优化
  • 郑州商城网站建设媒体网络推广价格优惠
  • 开发网站的硬件成本个人引流推广怎么做
  • 政府网站开发成本推广普通话手抄报模板可打印
  • 微信网站开发技术新闻类软文营销案例
  • 浦口区城乡建设集团网站软文营销广告案例
  • 企业网站做备案青岛seo全网营销
  • 网站设计规划的一般流程上海seo优化bwyseo
  • 看男女做那个真实视频网站如何刷关键词指数
  • 网站开发公司外包最佳磁力吧cili8
  • 网站建设有云端吗如何做营销推广