有時候會遇到這種情況:在一個表單上需要多個按鈕來完成不同的功能,比如 一個簡單的審批功能。
如果是用webform那不需要討論,但asp.net mvc中一個表單只能提交到一個 Action處理,相對比較麻煩點。
方法一:使用客戶端腳本
比如我們在View中這樣寫:
1 <input type="submit" value="審核通過" onclick='this.form.action="<%=Url.Action("Action1") % >";' />
2 <input type="submit" value="審核不通過" onclick='this.form.action="<%=Url.Action("Action2") %>";' />
3 <input type="submit" value="返回" onclick='this.form.action="<%=Url.Action("Action3") % >";' />
在點擊提交按鈕時,先改變Form的action屬性,使表單提交到按鈕相應的 action處理。
但有的時候,可能Action1和2的邏輯非常類似,也許只是將某個字段的值置為 1或者0,那麼分開到二個action中又顯得有點多余了。
方法二:在Action中判斷通過哪個按鈕提交
在View中,我們不用任何客戶端腳本處理,給每個提交按鈕加好name屬性:
1 <input type="submit" value="審核通過" name="action" />
2 <input type="submit" value="審核不通過" name="action"/>
3 <input type="submit" value="返回" name="action"/>