我試圖從C#列表中生成一個XML文檔。 xml文檔必須遵守第三方XML模式。MVC3返回XML文件使用Linq到XML
我看過XSD2CODE工具,但沒有得到任何地方。
是否有人可以幫助我如何使用LINQ to XML生成XML文件並使用MVC3返回XML文件。
我試圖從C#列表中生成一個XML文檔。 xml文檔必須遵守第三方XML模式。MVC3返回XML文件使用Linq到XML
我看過XSD2CODE工具,但沒有得到任何地方。
是否有人可以幫助我如何使用LINQ to XML生成XML文件並使用MVC3返回XML文件。
LINQ to XML用於查詢XML,而不是生成。如果你想生成一個XML文件,還有其他技巧:
但無論您選擇採用哪種XML生成技術,我都會建議您編寫一個自定義操作結果,以執行此作業,而不是使用XML生成管道來污染您的控制器,這絕對不是的責任。
讓我們舉一個使用第三種方法的例子(XmlSerializer
)。
假設你已經定義了你要轉換爲XML視圖模型:
public class MyViewModel
{
public string Foo { get; set; }
public string Bar { get; set; }
}
現在我們可以寫一個自定義操作的結果,將執行此轉換:
public class XmlResult : ActionResult
{
public XmlResult(object data)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
Data = data;
}
public object Data { get; private set; }
public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.ContentType = "text/xml";
var serializer = new XmlSerializer(Data.GetType());
serializer.Serialize(response.OutputStream, Data);
}
}
和控制器的行動將是非常標準:
public ActionResult Index()
{
var model = new MyViewModel
{
Foo = "foo",
Bar = "bar"
};
return new XmlResult(model);
}
您可能還需要檢查使這些場景變得非常簡單的ASP.NET MVC 4 Web API。
如果創建一個XDocument,添加您的XElements給它,然後調用文檔上的保存()方法,它應該創建你的文件,你
Blog post showing how to create a file from XDocument
根據XDocument MSDN您可以將其保存到一個流或直接進入一個文件。如果你想將它返回作爲一個動作,你可以看看這裏How to return an XML string as an action result in MVC
下面是一個例子,如何返回XML網站地圖,而不是普通視圖,如果它可以幫助你的情況,你可以檢查出來[網站地圖](HTTP:// WWW .networkozone.com /片段/ C-鋒利/ 7/ASP淨MVC-簡單站點地圖) – formatc