在ASP.NET MVC 4中显示/编辑任何Xml

本文关键字:编辑 任何 Xml 显示 ASP NET MVC | 更新日期: 2023-09-27 18:26:34

我的用户希望查看xml,编辑它,然后在ASP.NET MVC 4应用程序中提交页面。

我浏览了许多不同的地方,发现这个问题的解决方案为我完成了大部分工作,但它不允许对Xml进行任何编辑。它只显示了整个xml文档。=>在MVC应用中显示/编辑xml

理想情况下,我希望每个包含数据的节点在页面加载时都有一个文本框,其中包含该数据。我希望用户能够浏览文档,更改他们想要的任何值,然后单击提交按钮,在那里我将对编辑后的xml执行操作。不应该有任何节点属性需要处理。

基于上面的链接,我这样做=>

控制器

[HttpGet]
public ActionResult XmlEdit(int id = 0)
    {
        string model = "<Xml><RAY>rayTheMan</RAY><BROTHER><JOHN>JohnAintSoGreat</JOHN></BROTHER></Xml>"; 
        //My logic for the dynamic xml hasn't been made yet.
        //Haven't done POST logic yet.
        XDocument doc = XDocument.Parse(model);
        ViewData["XmlData"] = doc.ToString();
        return View();
    }

查看

@using (Html.BeginForm())
{
    <div>
        <pre style="font-size: 15px;"><code>@ViewData["XmlData"]</code></pre>
    </div>
    <div>
        <input type="submit" value="POST" />
    </div>
}

这可能吗?我不能必要地使用ViewModel,因为页面将生成的xml将具有许多不同的模式。如果有一种方法可以用ViewModel做到这一点,我对此持开放态度

下面是我的页面可以接受的xml文件类型的示例。应该在"rayTheMan"answers"JohnIntSoGreat"值处放置可编辑的文本框。

<Xml>
  <RAY>rayTheMan</RAY>
  <SIBLING>
    <JOHN>JohnAintSoGreat</JOHN>
  </SIBLING>
</Xml>

请帮忙!:(

在ASP.NET MVC 4中显示/编辑任何Xml

您可以使用视图模型:

public class MyModel
{
    [AllowHtml]
    public string DataHtml { get; set; }
}

视图:

<div>     
    @Html.TextAreaFor(m => m.DataHtml);
</div>

控制器:

return View(new MyModel() { DataHtml = "<Xml><RAY>rayTheMan</RAY><BROTHER><JOHN>JohnAintSoGreat</JOHN></BROTHER></Xml>" });