2009-05-22 7 views
1

これはパターンとしてのMVCに関する一般的な質問ですが、この場合はASP.NET MVCを使用しています。HTML以外のMVCビューの作成

出力がHTTPアクセスのXMLストリーム(コンテンツタイプtext/xml)であるアプリケーションを作成する必要があります。

これは、汎用ハンドラオブジェクトを使用する従来のASP.NETを使用して行うことができます。

public void ProcessRequest(HttpContext context) 
{ 
    context.Response.ContentType = "text/xml"; 
    context.Response.Write(someXmlText); 
} 

同じ結果が得られるASP.NET MVCビューを作成できますか?

これはMVCビューの適切な使用ですか?

答えて

3

MvcContrib's XmlResultを使用できます。上記の例のように動作します。ビューを使用してXMLをレンダリングする必要はありません。

本質的には、XMLを返すコントローラ上にアクションがあります。

+0

あなたは、MVCのソースあなたを見ればそれはあなたが望んでいるものを提供するためのactionresultを所有していることを確認します(私はImageThumbnailResultをやっただけです)。 –

+0

@リチャードはい。 –

+0

*コントローラ*にXMLを返すアクションがあります。 –

1

あなたがちょうど応じてコンテンツタイプを指定する必要があり、景色せずに直接それを返すことができます:あなたはこのようなアクションメソッドを指定することができ、たとえば

XElement GetElements(param1,param2...) 
{ 
    XElement elements = new XElement("elements", 
           from c in element 
           select new XElement("element", 
                new XElement("Id",c.Id), 
                new XElement("Name",c.Name) 
                )); 


    this.ControllerContext.HttpContext.Response.ContentType = "application/xml"; 
    return elements; 
} 
関連する問題