2014-03-06 5 views
8

Ein Interviewer fragte mich diese Frage. Was mein Verständnis der MVC-Architektur betrifft, ist dieses ActionResult eine abstrakte Klasse, von der alle Klassen erben.Rückgabe von Json durch ActionResult Rückgabetyp Aktion oder JsonResult Rückgabetyp Aktion. Welcher ist leicht oder schnell?

Aber er fragte speziell, welche der Aktion wird leicht sein?

public ActionResult ar() { return Json(); } 

ODER

public JsonResult ar() { return Json(); } 
+0

Was bedeutet Leichtgewicht in diesem Zusammenhang? –

+0

In Geschwindigkeit denke ich – Lakshay

+0

Wie hast du es beantwortet? –

Antwort

4

Ich bin nicht der größte C# oder MVC-Experte, aber, dies ist eine Fangfrage.

Sie sind gleich.

Sie sind richtig, dass Action eine abstrakte Klasse ist und JsonResult erbt von ihm.

+1

Es gibt keine differents, die Typ Action ActionResult oder JsonResult zurückgibt, der Code wird der gleiche sein: 'return new Json (Ihr Objekt)'; – alexmac

+2

+1 @Alexander. Jetzt warten wir einfach auf Eric Lippert, Jon Skeet, Jon Galloway, Haack, Wilson, Hanselman usw., um zu bestätigen/abzulehnen :) –

2

@Lakshay beantwortet Sie richtig, die Tatsache, dass ein zurück JSON und das andere nicht excplictly hat nichts zu bedeuten. Wenn der zurückgegebene JSON identisch ist, wird die public JsonResult ar() { return Json(); } in der verrückten Zeit etwas schneller sein ... was bedeutet, dass es nicht geht.

Ihre Interviewer war einer der Jungs, die über seinem Kopf war - keinen Job an diesem Ort übernehmen. Wirklich, wenn er dir eine Frage wie diese stellt, zeigt es nur ... er wusste es auch nicht ODER schlimmer noch, obwohl er es wusste. Welches ist wahrscheinlich der Fall.

Du hast die beste Antwort auf eine dumme Frage (eine Art, wie die MS oder Google Fragen verwendet werden).

0

Ihre Antwort "Ich weiß nicht" ist in der Tat eine gute. Vielleicht hat der Interviewer Ihre Einstellung oder Reaktion auf eine unsinnige Frage gesucht. Sicher genug können Sie ActionResult verwenden, um Json-Objekt zurückzugeben, aber dann müssen Sie alle zugehörigen Arbeiten manuell ausführen. Zum Beispiel müssen Sie den richtigen ContentType zuweisen. JsonResult ist es, all diese Arbeit hinter den Kulissen für Sie zu erledigen.