我在我的ASP.net MVC應用程序中有一個視圖和一個控制器。如何檢查哪些事件導致在asp.net mvc應用程序回發
我有一個「提交」按鈕&一個「取消」按鈕在我看來。
當我點擊下面任何一個按鈕時,動作將被觸發。
AcceptVerbs(HttpVerbs.Post)
公衆的ActionResult結果()
{
}
現在的問題是如何,我會知道我在公衆的ActionResult結果(),無論是由於「提交」或「取消」引起的回帖?
我在我的ASP.net MVC應用程序中有一個視圖和一個控制器。如何檢查哪些事件導致在asp.net mvc應用程序回發
我有一個「提交」按鈕&一個「取消」按鈕在我看來。
當我點擊下面任何一個按鈕時,動作將被觸發。
AcceptVerbs(HttpVerbs.Post)
公衆的ActionResult結果()
{
}
現在的問題是如何,我會知道我在公衆的ActionResult結果(),無論是由於「提交」或「取消」引起的回帖?
,你可以嘗試像
function OnBeginRequest(sender, args) {
var postBackElement = args.get_postBackElement();
if ((postBackElement.id == '<%= btnSave.ClientID %>')
{
}
}
您可以通過以下步驟解決問題:
i。在視圖的表單中放置一個名爲'取消'的隱藏字段。給它一個默認值false。
ii。在取消按鈕的onclick事件中,添加以下腳本:
document.getElementById('cancel').value = true; document.getElementById('myForm').submit();
將'myForm'更改爲您的表單名稱。
iii。對於結果的方法簽名()更改爲以下:
public ActionResult Result(bool cancel)
通過模型的結合,你的隱藏字段「取消」的值會在你的行動方法的簽名訪問。
感謝您的答案。 還有一個解決辦法,我是得了
public ActionResult Result()
{
if (Request.Params.ToString().IndexOf("btnSubmit") > 0)
//
else
//
}
我建議你「取消」按鈕,不應該提交表單。有幾種方法可以處理這個問題,但最簡單的方法是在導航回到上一頁的按鈕上有一個javascript onclick事件。 (history.go(-1)
)如果這不符合您的需求,您還可以指定一個特定的路線來導航到。最複雜的是攔截客戶端的點擊並決定要觸發哪條路線,但我通常只會這樣做,如果我想在表單上有多個提交按鈕,會觸發不同的操作,這種情況相當罕見。