【问题标题】:ActionResult Or JsonResult is best when return JsonResult? [closed]返回 JsonResult 时,ActionResult 还是 JsonResult 最好? [关闭]
【发布时间】:2016-04-12 05:17:06
【问题描述】:
/// <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调用。我知道以上两种方法可以完成这项工作。但我想知道witch方法是其中更好?我认为 ActionResult 比 JsonResult 好,因为我听说当我们编写函数时返回更通用的返回类型总是好的(JsonResult 是 ActionResult 的创建版本)。所以请专家帮助我澄清从中选择一个好的?(抱歉英语不好)

请伙计们在将其复制为重复之前请正确阅读该问题我已经知道 ActionResult 是 JsonResult 的更通用版本。我的问题是知道女巫通常最好以干净的编码和性能方式完成工作。 ..等等

【问题讨论】:

  • 两者给出完全相同的结果,但使用JsonResult 可以更清楚地知道方法的返回类型是什么。
  • 斯蒂芬,你的意思是第二个更好,因为它更干净是唯一的一点?丹尼斯,我认为你没有正确理解我的问题。
  • 我个人更喜欢它,因为它准确地指定了方法的意图是什么 - 即它将返回 json。但这真的取决于个人喜好。
  • 重复:stackoverflow.com/questions/15250941 根据@StephenMuecke 对答案的评论
  • ActionResult 只不过是一个抽象类。这取决于一些程序员是否遵循所有的 ActionResult 以及一些指定确切的结果类型。

标签: c# asp.net-mvc


【解决方案1】:

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

如果代码仅用于Ajax,则使用JsonResult,否则使用ActionResult。 查看层次结构,我们会看到差异。

ActionResult 的继承层次结构:

对于 JsonResult

根据来自 MSDN 的 ActionResult

ActionResult 类封装了一个动作方法的结果和 用于代表操作执行框架级操作 方法。

根据来自 MSDN 的 JsonResult

表示一个类,用于将 JSON 格式的内容发送到 回应。


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

对不起,我的英语不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2018-02-10
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多