[toc]最近没事复习了下MVC
顺手联系了个DEMO
控制器
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVC_Demo_CRUD.Models;
namespace MVC_Demo_CRUD.Controllers
{
public class NewsController : Controller
{
CRUDEntities css = new CRUDEntities();
public ActionResult Index()
{
ViewBag.msg = (from x in css.Newsinfo
join y in css.NewType
on x.newsType equals y.typeid
select new NewInfos()
{
newsid = x.newsid,
newsName = x.newsName,
typeName = y.typeName,
typeid=y.typeid,
newImage=x.newImage
}).ToList();
return View();
}
public ActionResult Delete(int newsid)
{
var nesid = css.Newsinfo.FirstOrDefault(x => x.newsid == newsid);
if (nesid!=null)
{
css.Newsinfo.Remove(nesid);
css.SaveChanges();
}
return Content("<script>alert('删除完成');window.location.href='http://localhost:9291/News/Index'</script>");
}
public ActionResult Add()
{
var list = css.NewType.ToList();
return View(list);
}
[HttpPost]
public ActionResult Addinfo(NewInfos newsinfos)
{
var image = AddImage();
newsinfos.newImage = image;
css.Newsinfo.Add(new Newsinfo
{
newsName = newsinfos.newsName,
newsType = newsinfos.typeid,
newImage = image
});
css.SaveChanges();
return Content("<script>alert('增加完成');window.location.href='http://localhost:9291/News/Add'</script>");
}
private string AddImage()
{
var guid = "";
var list = Request.Files.GetMultiple("newImage");
if (list[0].FileName != "")
{
foreach (var item in list)
{
var filename = item.FileName;
FileInfo file = new FileInfo(filename);
string ext = file.Extension;
guid = Guid.NewGuid().ToString() + ext;
guid = guid.Replace("-", "");
var path = Server.MapPath("~/upload/");
item.SaveAs(path + guid);
}
}
return guid;
}
public ActionResult Edit(int newsid)
{
var newsOne = css.Newsinfo.FirstOrDefault(x => x.newsid == newsid);
ViewBag.list2 = css.NewType.FirstOrDefault(x=>x.typeid==newsOne.newsType).typeName;
ViewBag.list = css.NewType.ToList();
return View(newsOne);
}
[HttpPost]
public ActionResult Editinfo(NewInfos newInfos)
{
var image = AddImage();
if (newInfos != null)
{
var userinfo = css.Newsinfo.FirstOrDefault(x => x.newsid == newInfos.newsid);
userinfo.newsName = newInfos.newsName;
userinfo.newsType = newInfos.typeid;
if (image!="")
{
userinfo.newImage = image;
}
else
{
userinfo.newImage=userinfo.newImage;
}
css.SaveChanges();
return Content("<script>alert('修改成功!');window.location.href='http://localhost:9291/News/Index'</script>");
}
else
{
return Content("<script>alert('修改失败!');window.location.href='http://localhost:9291/News/Edit'</script>");
}
}
}
}
Index页面
@{
Layout = null;
}
@using MVC_Demo_CRUD.Models
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<style>
img{
max-width:40px;
max-height:40px;
}
</style>
</head>
<body>
<div>
<a href="@Url.Action("Add","News")">添加</a>
<table border="1" style="border-style: solid;">
<tbody>
<tr>
<td>编号</td>
<td>名称</td>
<td>类别</td>
<td>图片</td>
<td>操作</td>
</tr>
@foreach (var item in (List<NewInfos>)ViewBag.msg)
{
<tr>
<td>@item.newsid</td>
<td>@item.newsName</td>
<td id="@item.typeid">@item.typeName</td>
<td><img src="http://localhost:9291/Upload/@item.newImage"/></td>
<td><a href="@Url.Action("Edit","News",new {item.newsid})">编辑</a> <a href="@Url.Action("Delete","News",new { newsid=item.newsid})">删除</a></td>
</tr>
}
</tbody>
</table>
</div>
</body>
</html>
Add 页面
@{
Layout = null;
}
@using MVC_Demo_CRUD.Models
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Add</title>
</head>
<body>
<div>
@*@using(Html.BeginForm("","",FormMethod.Post))
{
@Html.TextBox("text")
@Html.TextBox("File1","",new { type="file"})
<input type="submit" value="提交"/>
}*@
<a href="@Url.Action("Index","News")">首页</a>
<form action="@Url.Action("Addinfo","News")" method="post" enctype="multipart/form-data">
新闻名称<input type="text" name="newsName" /><br />
<select name="typeid">
@foreach (var item in (List<NewType>)Model)
{
<option value="@item.typeid">@item.typeName</option>
}
</select>
<br />
图片<input type="file" name="newImage"/><br />
<input type="submit" value="提交" />
</form>
</div>
</body>
</html>
修改页面
@{
Layout = null;
}
@*@model IEnumerable<MVC_Demo_CRUD.Models.Newsinfo>*@
@using MVC_Demo_CRUD.Models;
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
</head>
<body>
<div>
<a href="@Url.Action("Index","News")">首页</a>
<form action="@Url.Action("Editinfo","News")" method="post" enctype="multipart/form-data">
<input name="newsid" value="@Model.newsid" type="hidden"/>
新闻名称<input type="text" name="newsName" value="@Model.newsName"/><br />
<select name="typeid">
@foreach (var item in (List<NewType>)ViewBag.list)
{
if (ViewBag.list2 == item.typeName)
{
<option value="@item.typeid" selected>@item.typeName</option>
}
else
{
<option value="@item.typeid">@item.typeName</option>
}
}
</select>
<br />
图片<input type="file" name="newImage" value="@Model.newImage"/><br />
<input type="submit" value="提交" />
</form>
</div>
</body>
</html>
最后效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)