一位面试官问了我这个问题。就我对 MVC 体系结构的理解而言,ActionResult 是一个抽象类,所有类都继承自该类。
但他特别问,哪一个动作是轻量级的?
public ActionResult ar() { return Json(); }
或
public JsonResult ar() { return Json(); }
我不是最大的 C# 或 MVC 专家,但是,这是一个棘手的问题。
它们是一样的。
您是正确的,ActionResult 是一个抽象类,JsonResult 继承自它。
@Lakshay你回答正确,一个返回JSON而另一个不完全返回的事实并不意味着什么。如果返回的 JSON 相同,则public JsonResult ar() { return Json(); }
在疯狂的时间会稍微快一点......意思是它不会。
你的面试官是其中一个过分的人——不要接受这个地方的工作。真的,如果他问你这样的问题,它只能表明..他不知道,或者更糟的是,尽管他知道。情况很可能是这样。
你对一个愚蠢的问题给出了最好的答案(有点像以前的 MS 或 Google 问题)。
你的回答"我不知道"确实很好。也许面试官正在寻找你对一个荒谬问题的态度或反应。当然,您可以使用ActionResult
返回 Json 对象,但随后您必须手动完成所有相关工作。例如,您必须分配正确的内容类型。 JsonResult
在幕后为您完成所有这些工作。