ASP.Net MVC返回类似于37Signals的Highrise API的xml结果

时间:2012-12-05 09:18:13

标签: xml asp.net-mvc highrise

我想知道当用户输入以下网址时,如何使用ASP.Net MVC返回XML:

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

如果用户输入http://www.mysite.com/people,则应呈现正常的html视图,显示数据库中的所有人,而如果他们添加.xml,则会获得包含数据库中所有人的xml。

37Signals的Highrise API以这种方式运作。我知道我可以使用XmlResult但是,如果用户没有在url的末尾指定.xml,我如何配置操作以返回普通视图?

1 个答案:

答案 0 :(得分: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();
    }

}