2009-11-03 39 views
0

我在我的ASP.net MVC應用程序中有一個視圖和一個控制器。如何檢查哪些事件導致在asp.net mvc應用程序回發

我有一個「提交」按鈕&一個「取消」按鈕在我看來。

當我點擊下面任何一個按鈕時,動作將被觸發。

AcceptVerbs(HttpVerbs.Post)

公衆的ActionResult結果()

{

}

現在的問題是如何,我會知道我在公衆的ActionResult結果(),無論是由於「提交」或「取消」引起的回帖?

回答

0

,你可以嘗試像

function OnBeginRequest(sender, args) { 
     var postBackElement = args.get_postBackElement(); 
if ((postBackElement.id == '<%= btnSave.ClientID %>') 
    { 

    } 
} 
0

您可以通過以下步驟解決問題:

i。在視圖的表單中放置一個名爲'取消'的隱藏字段。給它一個默認值false

ii。在取消按鈕的onclick事件中,添加以下腳本:

document.getElementById('cancel').value = true; document.getElementById('myForm').submit(); 

將'myForm'更改爲您的表單名稱。

iii。對於結果的方法簽名()更改爲以下:

public ActionResult Result(bool cancel) 

通過模型的結合,你的隱藏字段「取消」的值會在你的行動方法的簽名訪問。

0

感謝您的答案。 還有一個解決辦法,我是得了

public ActionResult Result() 
    { 
     if (Request.Params.ToString().IndexOf("btnSubmit") > 0) 
      // 
     else 
      // 
    } 
0

我建議你「取消」按鈕,不應該提交表單。有幾種方法可以處理這個問題,但最簡單的方法是在導航回到上一頁的按鈕上有一個javascript onclick事件。 (history.go(-1))如果這不符合您的需求,您還可以指定一個特定的路線來導航到。最複雜的是攔截客戶端的點擊並決定要觸發哪條路線,但我通常只會這樣做,如果我想在表單上有多個提交按鈕,會觸發不同的操作,這種情況相當罕見。

相關問題