• 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="删除"/>
    }

     

  • 相关阅读:
    Spark SQL saveMode 方式
    Spark SQL 读取json 里面的数据 ,jason 是 结构的数据
    SPark SQL 从 DB 读取数据方法和方式 scala
    SPark SQL 从 DB 读取数据方法和方式
    spark parquet 从hdfs 上读 和写 scala 版本
    spark parquet 从hdfs 上读 和写
    Spark streaming 采用直接读kafka 方法获取数据
    Topbeat --Metricbeat 在Windows上设置 centos kafka 打数据 成功
    php代码加入frameset后框架不显示
    【TP5笔记】TinkPHP5中引入资源文件
  • 原文地址:https://www.cnblogs.com/darrenji/p/3790250.html
Copyright © 2020-2023  润新知