有谁能告诉我为什么要使用NonAction属性吗?我的意思是说,我有一个表单有几个提交值:更新、删除或插入.由于所有提交按钮都有相同的共同形式,我在控制器内切换提交值,并相应地采取行动.

如下所示:

public ActionResult asd(string submitButton){
     switch(submitButton){
         case "Insert":
             return Insert();
         // bla bla bla
     }
}

[NonAction]
public ActionResult Insert(){
    // some code inside here
    return View();
}

再一次,我为什么要使用非动作而不是这样的东西:

public void Insert(){
    // some code inside here
}

推荐答案

可以省略NonAction属性,但该方法仍然可以作为action方法调用.

从MSDN站点(ref):

默认情况下,MVC框架将控制器类的所有公共方法视为操作方法.如果您的控制器类包含一个公共方法,而您不希望它是一个操作方法,则必须使用NoActionAttribute属性标记该方法.

Asp.net相关问答推荐

无法翻译 LINQ

ASP.NET web api 无法获取 application/x-www-form-urlencoded HTTP POST

有条件地在 Gridview 中隐藏 CommandField 或 ButtonField

下载功能在 asp.net 的更新面板中不起作用

ASP.NET 控件无法在 Visual Studio 2008 的代码隐藏中引用

不支持关键字:服务器

如何将 global.asax 文件添加到 ASP.NET MVC4 项目?

Razor 主机工厂错误

判断邮箱地址是否对 System.Net.Mail.MailAddress 有效

使用 ASPNet_Regiis 加密自定义配置部分 - 你能做到吗?

IIS 10 上的 ASP.NET Core 404 错误

如何在 ASP.NET 页面中以编程方式生成 401 错误

ASP.NET 上的 WebSockets 教程

如何获取正在访问 ASP.NET 应用程序的当前用户?

如何在 asp net core api 中使用 Created(或 CreatedAtAction / CreatedAtRoute)

您正在使用哪些身份验证和授权方案 - 为什么?

为什么混合 Razor Pages 和 VueJs 是一件坏事?

在 ASP.NET 中使用 MasterPages 时使用 JQuery 的正确方法?

在c#中显示带有换行符的标签文本

盒式磁带包与 MVC4 包