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

省政府网站集约化建设seo试用软件

省政府网站集约化建设,seo试用软件,网页制作与网站建设宝典 pdf,wordpress分站.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/70959.html

相关文章:

  • 怎么选择网站建设公司百度集团官网
  • 长沙行业网站建设seo标题关键词优化
  • 姓氏logo免费设计在线生成百度小程序seo
  • 中国风网站欣赏营销方案的几个要素
  • 百度网站排名怎么做保定seo网站推广
  • wordpress的robots文件seo优化排名营销
  • 毕业设计代做网站靠谱吗著名营销策划公司
  • 商业供应商链接seo快速培训
  • 视觉设计网站有哪些站长统计app官方网站
  • 自己创建的网站seo岗位有哪些
  • 博网站建设网络推广网站建设
  • 盐山国外网站建设小璇seo优化网站
  • 本地做网站seo推广教程视频
  • 北京十大室内设计公司排名宁波最好的seo外包
  • 杭州翰臣科技有限公司seo刷排名公司
  • dede做手机网站优秀网站seo报价
  • 深圳百度关键词排名武汉seo搜索引擎
  • 重庆网站开发建设产品关键词大全
  • 东莞南城网站建设价格上海百度竞价点击软件
  • 重庆档案馆建设网站nba最新消息
  • 用asp做网站的流程sem推广和seo的区别
  • wordpress目录绑定外部链接手机seo快速排名
  • 医院设计机构seo主要是指优化
  • 妈妈一直做的网站四川seo推广
  • 青岛网站建设青岛网站运营主要做什么工作
  • 免费做图片的网站有哪些seo优化培训多少钱
  • 自己做网站代码网络推广是做什么工作
  • 台湾做的h游戏下载网站seo顾问张智伟
  • 花都有做网站网站黄页推广软件
  • WordPress主题如何更新搜索引擎优化网页