Ich möchte das Modell (Daten) eines Controllers in verschiedenen Formaten (JavaScript/XML/JSON/HTML) mit ActionFilter. Hier ist, wo ich so weit bin:Rückgabe JsonResult mit einem ActionFilter auf einem ActionResult in einem Controller
Die Action:
public class ResultFormatAttribute : ActionFilterAttribute, IResultFilter
{
void IResultFilter.OnResultExecuting(ResultExecutingContext context)
{
var viewResult = context.Result as ViewResult;
if (viewResult == null) return;
context.Result = new JsonResult { Data = viewResult.ViewData.Model };
}
}
Und die es Implementierung:
[ResultFormat]
public ActionResult Entries(String format)
{
var dc = new Models.WeblogDataContext();
var entries = dc.WeblogEntries.Select(e => e);
return View(entries);
}
Die OnResultExecuting
Methode aufgerufen wird, aber ich bin nicht das Modell (Daten bekommen) zurückgegeben und als JSON-Objekt formatiert. Mein Controller rendert nur die Ansicht.
Update: Ich bin nach dem Vorschlag von Darin Dimitrov Antwort auf this question.
IResultFilter.OnResultExecuting Void zurückgibt. Und die Json-Klasse ist in diesem Kontext nicht verfügbar. – roosteronacid