MVC创建XML,并实现增删改
如果创建如下的XML:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Students>
<Student Id="1">
<Name>darren</Name>
</Student>
</Students>
创建XML文件
在HomeController中,在根目录下创建new.xml文件:
public ActionResult Index()
{
return View();
} [HttpPost]
public ActionResult AddXml()
{
string path = Server.MapPath("~/new.xml");
XDocument doc = new XDocument(
new XDeclaration("1.0","utf-8","yes"),
new XElement("Students",new XElement("Student",
new XAttribute("Id","1"),
new XElement("Name","darren")
))
);
doc.Save(path);
return Json(new {msg = true}, JsonRequestBehavior.AllowGet);
}
在Index.cshtml中通过异步请求:
@model IEnumerable<MvcApplication1.Models.Student>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<input type="button" value="创建XML" id="create"/>
@section scripts
{
<script type="text/javascript">
$(function() {
$('#create').on('click', function() {
$.ajax({
url: '@Url.Action("AddXml", "Home")',
dataType: 'json',
data: {},
type: 'POST',
success: function(data) {
if (data.msg) {
alert('创建成功');
}
}
});
});
});
</script>
}
显示XML文件元素
修改HomeController中的Index方法为:
public ActionResult Index()
{
string path = Server.MapPath("~/new.xml");
List<Student> result = new List<Student>(); var nodes = ReadXML(path).Descendants("Student"); foreach (var node in nodes)
{
Student student = new Student();
student.Id = Convert.ToInt32(node.Attribute("Id").Value);
foreach (var ele in node.Elements())
{
student.Name = ele.Value;
}
result.Add(student);
} return View(result);
} private XDocument ReadXML(string path)
{
XDocument xDoc = new XDocument();
xDoc = XDocument.Load(path);
return xDoc;
}
修改Home/Index.cshtml为:
@model IEnumerable<MvcApplication1.Models.Student>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
<input type="button" value="创建XML" id="create"/>
<table>
<tr>
<th>编号</th>
<th>姓名</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@Html.ActionLink("修改","Update","Home",new {id= item.Id},null)</td>
<td>@Html.ActionLink("删除","Delete","Home", new {id = item.Id},null)</td>
</tr>
}
</table>
<br/>
@Html.ActionLink("创建","Create","Home")
@section scripts
{
<script type="text/javascript">
$(function() {
$('#create').on('click', function() {
$.ajax({
url: '@Url.Action("AddXml", "Home")',
dataType: 'json',
data: {},
type: 'POST',
success: function(data) {
if (data.msg) {
alert('创建成功');
}
}
});
});
});
</script>
}
添加元素到XML文件中
HomeController中:
public ActionResult Create()
{
return View();
} [HttpPost]
public ActionResult Create(Student student)
{
string path = Server.MapPath("~/new.xml");
XDocument xd = XDocument.Load(path); XElement newStudent = new XElement("Student",
new XAttribute("Id", student.Id),
new XElement("Name",student.Name)); xd.Root.Add(newStudent);
xd.Save(path);
return RedirectToAction("Index");
}
Home/Create.csthml中:
@model MvcApplication1.Models.Student
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create</h2>
@using (Html.BeginForm("Create", "Home", FormMethod.Post, new {id = "addForm"}))
{
@Html.LabelFor(m => m.Id)
@Html.EditorFor(m => m.Id)
<br/>
@Html.LabelFor(m => m.Name)
@Html.EditorFor(m => m.Name)
<br/>
<input type="submit" value="创建"/>
}
修改XML文件中的元素
HomeController中:
public ActionResult Update(string id)
{
string path = Server.MapPath("~/new.xml");
XElement xe = XElement.Load(path);
var studentXe = xe.Elements("Student").Where(e => e.Attribute("Id").Value == id).FirstOrDefault(); Student student = new Student();
student.Id = Convert.ToInt32(studentXe.Attribute("Id").Value);
student.Name = studentXe.Element("Name").Value;
return View(student);
} [HttpPost]
public ActionResult Update(Student student)
{
string path = Server.MapPath("~/new.xml");
var studentId = student.Id.ToString();
XDocument xd = XDocument.Load(path);
XElement node =
xd.Root.Elements("Student").Where(e => e.Attribute("Id").Value == studentId).FirstOrDefault();
node.SetElementValue("Name", student.Name);
xd.Save(path);
return RedirectToAction("Index");
}
Home/Update.csthml中:
@model MvcApplication1.Models.Student
@{
ViewBag.Title = "Update";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Update</h2>
@using (Html.BeginForm("Update", "Home", FormMethod.Post, new {id = "editForm"}))
{
@Html.HiddenFor(m => m.Id)
@Html.LabelFor(m => m.Name)
@Html.EditorFor(m => m.Name)
<br/>
<input type="submit" value="修改"/>
}
删除XML文件中的元素
HomeController中:
public ActionResult Delete(string id)
{
string path = Server.MapPath("~/new.xml");
XElement xe = XElement.Load(path);
var studentXe = xe.Elements("Student").Where(e => e.Attribute("Id").Value == id).FirstOrDefault(); Student student = new Student();
student.Id = Convert.ToInt32(studentXe.Attribute("Id").Value);
student.Name = studentXe.Element("Name").Value;
return View(student);
} [HttpPost]
public ActionResult Delete(Student student)
{
string path = Server.MapPath("~/new.xml");
var studentId = student.Id.ToString();
XDocument xd = XDocument.Load(path);
xd.Root.Elements("Student").Where(e => e.Attribute("Id").Value == studentId).Remove();
xd.Save(path);
return RedirectToAction("Index");
}
Home/Delete.cshtml中:
@model MvcApplication1.Models.Student
@{
ViewBag.Title = "Delete";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Delete</h2>
@Model.Id
<br/>
@Model.Name
<br/>
@using (Html.BeginForm("Delete", "Home", FormMethod.Post, new {id = "delForm"}))
{
@Html.HiddenFor(m => m.Id)
<input type="submit" value="删除"/>
}
MVC创建XML,并实现增删改的更多相关文章
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- 使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能
此处采用VS2017+SqlServer数据库 一.创建项目并引用dll: 1.创建一个MVC项目 2.采用Nuget安装EF6.1.3 二.创建Model 在models文件夹中,建立相应的mode ...
- 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建
数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...
- 数据库开发基础-SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- 第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍
第16课-数据库开发及ado.net 数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍 SQL语句入门(脚本.命令) SQL全名是结构化查询语言(Structur ...
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- 数据库开发基础-★SQl Server 控制数据库的服务+数据库的创建与管理(增删改查)★
控制数据库的服务: 方法一: 1.Windows+R 打开运行 打开cmd 2.输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver 关闭数据 ...
- asp.net下利用MVC模式实现Extjs表格增删改查
在网上看到有很多人写extjs下的表格控件的增删改查,但是大多数都是直接从后台读取数据,很少有跟数据库进行交互的模式. 今天就来写一个这样的例子.欢迎大家交流指正. 首先简单介绍一下MVC模式,MVC ...
- XML(五)dom4j增删改查
book2.xml <? xml version="1.0" encoding="UTF-8"?> <书架> <书> < ...
随机推荐
- leetcode-2 Add Two Numbers 计算两个对应的列表和问题
1.问题描写叙述: You are given two linked lists representing two non-negativenumbers. The digits are sto ...
- zoj 3820 Building Fire Stations(树上乱搞)
做同步赛的时候想偏了,状态总是时好时坏.这状态去区域赛果断得GG了. 题目大意:给一棵树.让求出树上两个点,使得别的点到两个点较近的点的距离最大值最小. 赛后用O(n)的算法搞了搞,事实上这道题不算难 ...
- mod_wsgi + pymssql通路SQL Server座
靠pymssql通路SQL Server时刻,直接地python没有问题的执行.靠mod_wsgi和Apache当部署.所有请求被发现hang然后数据库查询. 通过google查到了答案,感谢goog ...
- Oracle与Sql Server复制表结构和数据
1.Oracle create table 新表名 AS SELECT * FROM 源表名 2.Sql Server SELECT * into 新表名 from 源表名 版权声明:笔者:jiank ...
- [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版
大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...
- 实现android里面WebView显示内容
在日常学习.我们会看到,当手机应该检查注册协议.单击协议时,以查看内部协议的全部内容! 以下给大家看看实现的过程: 首先贴show_xy.XML代码: <WebView android:layo ...
- Oracle SQL 调优健康检查脚本
Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性 ...
- 5次Shift会触发粘滞键的妙用(转)
1.前提 你可以在平时亲身接触状态电脑,哪怕是在电脑主人不在的时候(虽然主人不在,或者关机了,进入电脑是要密码的). 2.原理 利用电脑连续按5次Shift会触发粘滞键,它会运行c:\winows\s ...
- JBPM4实例教程
JBPM语言概述:全名 Java Business Process Management ,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可运行流程语言框架. 是开源 ...
- 安卓模拟器错误: Could not open
在进行android模拟器測试的时候,出现下面错误,进度条满了之后就没反应了.图例如以下: 引起这个问题的可能原因有非常多: 原因一:由于我们採用的是绝对路径定位.也就是说在环境变量里面把路径写死了, ...