在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>
请帮忙!:(
您可以使用视图模型:
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>" });