asp.net-mvc - Asp.Net MVC 中私有(private)方法和用 NonAction 修饰的 Action 的区别

标签 asp.net-mvc private

在 Asp.Net MVC 中,如果我用属性 NonAction 装饰一个操作方法则不允许访问该站点的用户调用它。
当我制作它时也会发生同样的情况private那么这两者有什么区别,有没有什么特殊用途呢NonAction属性被做了?

例如有什么区别

[NonAction]
public ActionResult SomeAction(){}


private ActionResult SomeAction(){}

在 asp.net MVC 的上下文中,我当然知道一个是 public另一个是 private

最佳答案

这是唯一的区别。当您想要一个方法具有可以使其成为操作的签名但您不想成为操作时,使用该属性。

一个使用它的示例是操作方法调用以生成 ActionResult 的方法。对他们来说:

[NonAction]
public JsonResult JsonInfo(string id, string value) {
  return Json(new { id = id, value = value });
}

public JsonResult GetBusInfo() {
  return JsonInfo("4", "Bus");
}

public JsonResult GetCarInfo() {
  return JsonInfo("8", "Car");
}

将其设为公开而不是私有(private)的原因是其他 Controller 中的操作也可以使用它。

关于asp.net-mvc - Asp.Net MVC 中私有(private)方法和用 NonAction 修饰的 Action 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787029/

相关文章:

C++类和虚方法

asp.net-mvc - 使用 Knockout JS + MVC + 服务器端模型验证显示错误?

asp.net-mvc - 让 MVC Controller 轻而模型重

java - 私有(private)最终静态属性与私有(private)最终属性

javascript - 检查 JavaScript 中的对象内部是否存在私有(private)函数

java - 何时使用本地访问修饰符?

asp.net-mvc - 没有 Controller 或 Action 名称的 Asp.net mvc 路由

c# - 如何在 Http Post 之后保留 url(带有查询字符串),同时向模型状态添加错误?

javascript - 跨域脚本问题和 JSONP

java - 引用私有(private)变量时,是否需要this.variableName声明?