MVC 5限制所有HTTP請求必須是POST方式

2022-06-14 21:30:34 字數 2000 閱讀 1301

今天有位同事,提出了這樣乙個問題,他想限制所有mvc接收到的http請求必須是post方式。

大家首先想到時的,mvc提供了httppostattribute特性,是用於限制http請求必須post方式來提交。  

1   public class homecontroller : controller

2

8 }

這個特性只能在action方法上面做標記,需要我們在每乙個action方法上面做標記,做乙個coder,這種方式,我們肯定接收不了。 

1     //

2 // 摘要:

3 // 表示乙個特性,該特性用於限制操作方法,以便該方法僅處理 http post 請求。

在web.config增加相關的配置。

1 <?xml version="1.0" encoding="utf-8"?>

7

8

經過測試,是可以達到我們的要求(關於測試結果不在做演示)。

在mvc中,可以通過全域性的過濾器來控制請求。 

在程式啟動時,註冊為全域性過濾器。

1     public class filterconfig

2

7 }

在註冊路由時,可以定義路由的約束。通過如下方式,可以將請求方式限制為post請求。

1     public class routeconfig

2 //",

8 defaults: new

9 //限制請求方式必須是post

10 , constraints:new

11 );

12 }

13 }

在mvc中,所有控制器預設繼承於controller。

我們可以定義乙個basecontroller的抽象類,重寫onactionexecuting,其它的控制器都繼承於basecontroller。

1     public abstract class basecontroller : controller

2

10 else

13 }

14 }

這種方法,需要修改所有控制器的基類,不推薦。

當然如果你已經定義了自己的控制器基類,這種方式的工作量也是非常小的。

上述五種方法中,二、三、四方法都非常簡單,但是我比較推薦方法四,因為如果需求發生變化,維護工作量是最小的。

原文:

MVC5擴充套件方法

html.partial和html.renderpartial用法 html.partial和renderpartial的用法與區別 輸出方式 html.partial和renderpartial都是輸出html片段,區別在於 partial是將檢視內容直接生成乙個字串並返回 相當於有個轉義的過程 ...

關於mvc5的學習

最近幾個周一直在自學mvc框架,我自己可以說是一點基礎都沒有,看一些關於mvc的教程,裡面的很多定義類的關鍵字完全看不懂,只能靠著反覆的看來熟悉一下這個開發模式。首先談一下我個人的這幾周的學習心得。微軟官網的教程非常簡單,跟著步驟做下去,算是剛剛熟悉這個開發模式是怎麼回事。裡面有乙個先設計的mode...

MVC5學習小記(1)

該方法生成乙個鏈結,依次是鏈結的文字,action,route,以及route引數,最後是屬性,class前要加 2.類的設定方法如下 namespace test1.models public string name public string password html引入類的方法 model ...