0

アイデアは、異なるタイプの結果IEに同じアクションメソッドを使用することです

/category/details/?resultFormat=json

/category/details/?resultFormat=xml

したがって、登録された値リゾルバーのペアを含むある種の ActionResult ヘルパーを用意するには

"json"、JsonValueResolver

"xml"、XmlResolver

など...これに対する解決策はすでにありますか、それとも何らかのカスタムリゾルバーを考えなければなりませんか? Automapper には、値を解決するための優れたソリューションがあります。何か案は?

4

1 に答える 1

1
public class SmartResult : ActionResult
{
    public override void ExecuteResult(ControllerContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException("context");
        }

        if (context.HttpContext.Request.QueryString["ResultFormat] == "json")
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            context.HttpContext.Response.Write(serializer.Serialize(this.Data));
        } else if(context.HttpContext.Request.QueryString["ResultFormat] == "xml")
                    {
              ...serialize using xmlserializer
        }else{
            throw new InvalidOperationException();
        }
    }

    public object Data { get; set; }
}
于 2009-11-18T13:58:08.557 に答える