mvc中Action前HttpPost的作用

mvc中Action前HttpPost的作用

更多2015/9/9 來源:ASP.NET學習瀏覽量:995
學習標籤: mvc
本文導讀:在ASP.NET MVC框架中,爲了限制某個action只接受HttpPost的請求,對於HttpGet的請求則提示404找不到頁面,可以在action的方法前面加上[HttpPost]屬性。下面介紹Action前HttpPost的作用

一、Action前HttpPost實例

 


[HttpPost]  
public string post_test(string str)  
{  
return "post的字符串是:"+str;  
} 

 

腳本調用

 


function post_test()  
{  
   $.post("/test/post_test", { str: "John" }, function (data) 
{  
      $('#lbl_show').text(data);  
   });  
}  
 
 
或者
 
 

$.ajax({
            type: "POST",
            url: "/test/post_test",
            data: "str='" + John+ "'",
           success: function(msg) {
               $('#lbl_show').text(data);  
            }
      });

 

二、Action前HttpPost 的作用

限制action只接受HttpPost的請求,對於HttpGet的請求則提示404找不到頁面。

如果Action前即沒有 [HttpPost],也沒有 [HttpGet] ,則兩種方式的請求都接收。

 

三、Post方式提交數據後,Controller中尋找Action的相應機制

1、查找有沒有[HttpPost]標註的Register Action,如果有,則執行,如果沒有,則2

2、查找有沒有沒有任何[HttpPost]或者[HttpGet]標記的Register Action,如果有,則執行,如果沒有,則3

3、返回“The Resource can't be found"的異常信息

===============================================================================================

兩種 HTTP 請求方法:GET 和 POST

在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。

  • GET - 從指定的資源請求數據。
  • POST - 向指定的資源提交要被處理的數據
  GET POST
後退按鈕/刷新 無害 數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交)。
書籤 可收藏爲書籤 不可收藏爲書籤
緩存 能被緩存 不能緩存
編碼類型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。
歷史 參數保留在瀏覽器歷史中。 參數不會保存在瀏覽器歷史中。
對數據長度的限制 是的。當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。 無限制。
對數據類型的限制 只允許 ASCII 字符。 沒有限制。也允許二進制數據。
安全性

與 POST 相比,GET 的安全性較差,因爲所發送的數據是 URL 的一部分。

在發送密碼或其他敏感信息時絕不要使用 GET !

POST 比 GET 更安全,因爲參數不會被保存在瀏覽器歷史或 web 服務器日誌中。
可見性 數據在 URL 中對所有人都是可見的。 數據不會顯示在 URL 中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章