一位采访者问我这个问题。就我对MVC架构的理解而言,ActionResult是一个抽象类,所有类都从该类继承。
但他具体询问哪一项行动会轻量化?
public ActionResult ar() { return Json(); }
OR
public JsonResult ar() { return Json(); }
答案 0 :(得分:4)
我不是最大的C#或MVC专家,但这是一个技巧问题。
他们是一样的。
你是对的,ActionResult是一个抽象类,JsonResult继承它。
答案 1 :(得分:2)
@Lakshay你的回答是正确的,一个人返回JSON而另一个人没有激动人心地说没有任何意义。如果返回的JSON是相同的,public JsonResult ar() { return Json(); }
在疯狂的时间会稍微快一些......意味着它不会。
你的面试官是他头脑中的一个人 - 不要在这个地方接受工作。真的,如果他问你这样的问题,它只表示......他不知道或者更糟,尽管他知道。情况可能就是这样。
你给出了一个愚蠢问题的最佳答案(有点像以前的MS或Google问题)。
答案 2 :(得分:0)
你的答案“我不知道”确实是一个很好的答案。也许面试官正在寻找你对一个荒谬的问题的态度或反应。果然你可以使用ActionResult
来返回Json对象,但是你必须手动完成所有相关的工作。例如,您必须分配正确的ContentType。 JsonResult
可以在幕后为您完成所有这些工作。