0

ユーザーが次の URL を入力したときに、ASP.Net MVC を使用して結果として XML を返す方法を考えていました。

http://www.mysite.com/people.xml

ユーザーがhttp://www.mysite.com/peopleと入力すると、データベース内のすべての人を表示する通常の html ビューがレンダリングされますが、.xml を追加すると、データベース内のすべての人を含む xml が取得されます。

37Signals の Highrise API はこのように動作します。XmlResult を使用できることはわかっていますが、ユーザーが URL の末尾に .xml を指定しない場合、通常のビューを返すようにアクションを構成するにはどうすればよいでしょうか?

4

1 に答える 1

0

あなたの質問を正しく理解していれば、次のように問題を解決できると思います。

public class HomeController : Controller{

    public ActionResult Index(string filename){

        if(filename != null){
            string ext = // parse the filename and get the extension
            /*
                can't test, but I think 
                System.IO.Path.GetExtension(filename);
                should work
            */

            if(ext == "xml"){
                //  do stuff

                return new XmlResult(/* filepath or something */);
            }

        }

        //  do stuff

        //  return the view you want if no filename or not a xml extension
        return View();
    }

}
于 2012-12-05T09:55:10.483 に答える