2012-12-05 1 views
0

мне было интересно, как бы один идти о возврате XML в результате использования ASP.Net MVC, когда пользователь вводит следующий URL:ASP.Net MVC возвращение XML результат похож на 37Signals' Highrise API

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

Если пользователь вводит http://www.mysite.com/people, должен отображаться обычный html-представление, показывающий всех людей в базе данных, тогда как если они добавят .xml, они получат xml, содержащий все люди в базе данных.

API-интерфейс HighSize 37Signals работает таким образом. Я знаю, что могу использовать XmlResult, но как бы настроить действие для возврата нормального представления, если пользователь не указывает .xml в конце URL-адреса?

ответ

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(); 
    } 

} 
+0

Спасибо. Не совсем то, что я искал, но это сработает. – PW763