返回JsonResult时ActionResult或JsonResult最好?

时间:2016-04-12 05:17:06

标签: c# asp.net-mvc

/// <summary>
/// Get collection of movies as json.
/// </summary>
/// <returns></returns>
public ActionResult GetAllMovies1s()
{
    // db-> DBContext
    // Get the collection of movies.
    var movies = db.Movies.ToList();

    return Json(movies);
}

/// <summary>
/// Get collection of movies as json.
/// </summary>
/// <returns></returns>
public JsonResult GetAllMovies2()
{
    // db-> DBContext
    // Get the collection of movies.
    var movies = db.Movies.ToList();

    return Json(movies);
}

我对此有点新手,上面两个方法返回json数组来查看获取电影JSON结果到Ajax调用。我知道上面两个方法都可以完成工作。但我想知道女巫方法是其中更好吗?我认为ActionResult比JsonResult更好,因为我听说当我们编写一个函数时返回更通用的返回类型总是好的(JsonResult是ActionResult的concreate版本)。所以请高手帮我澄清一下选择其中的好人?(抱歉英语不好)

请大家请在重复之前正确阅读这个问题我已经知道ActionResult是JsonResult的更通用版本。我的问题是要知道,通常最好的方法就是完成编码和性能的干净方式。 ..等

1 个答案:

答案 0 :(得分:3)

我认为在这种情况下没有区别。如果仅在一种情况下使用该方法,则使用JsonResult。你会看到你正在使用。随附这样的代码会更容易。您编写的代码不会引起任何问题。 ActionResult更通用的类,是一个动作可以返回的抽象类。

如果代码仅在Ajax中使用,则使用JsonResult其他ActionResult。 看看层次结构,我们将看到差异。

ActionResult的继承层次结构:

ActionResult Inheritance Hierarchy

和JsonResult

enter image description here

根据MSDN的ActionResult

  

ActionResult类封装操作方法的结果   用于代表操作执行框架级操作   方法

根据MSDN的JsonResult

  

表示用于将JSON格式的内容发送到的类   响应。

JsonResultActionResult的具体版本 - 然后使用JsonResult进行Ajax调用。

抱歉我的英文。