MVC3實現多個按鈕提交

2022-05-14 03:17:01 字數 3559 閱讀 1046

有時我們需要在同乙個form表單中進行多個按鈕的提交,來完成不同的功能。因為mvc中乙個表單預設只能提交到乙個action處理,相對比較麻煩。

1、使用客戶端指令碼

我們可以view中加上如下**:

"

submit

" value="

submittoabout1

" onclick='

this.form.action="@url.action("about1")"

'/>

"submit

" value="

submittoabout2

" onclick='

this.form.action="@url.action("about2")"

'/>

用來指示不同的按鈕點選後跳轉到不同的action。action方法**如下:

public

string

about1(formcollection collection)

public

string

about2(formcollection collection)

這樣就實現了點選不同的按鈕跳轉到不同的方法中。

2、在action中判斷按鈕的value值

在view中,不同的input標籤,定義相同的name,如下:

"

submit

" value="

submittoabout1

" name="

action

"/>

"submit

" value="

submittoabout2

" name="

action

"/>

然後在action方法中,獲取表單傳過來的資料,獲取name為action的value值,再根據value值去進行判斷。

此種方法我們可以做出改進,新建乙個multibuttonattribute類,該類繼承actionnameselectorattribute類,該類**如下:

[attributeusage(attributetargets.method, allowmultiple = false, inherited = true

)]public

class

multibuttonattribute : actionnameselectorattribute

public

string matchformvalue

public

override

bool isvalidname(controllercontext controllercontext, string

actionname, system.reflection.methodinfo methodinfo)

}

其中view中**不變,還是

"

submit

" value="

submittoabout1

" name="

action

"/>

"submit

" value="

submittoabout2

" name="

action

"/>

在控制器的action中呼叫:

這樣,點選submit按鈕時,multibutton會根據按鈕的name和value值跳轉到相應的執行方法。

3、判斷按鈕的name值

判斷按鈕的value值有很多不確定的因素,比如按鈕的value值可能會更加客戶的個人愛好而進行改動,或者按鈕需要改成多語言版本的,這時我們根據按鈕的value值來選擇不同的控制器的action時就顯得極其不靈活,這時我們希望通過按鈕的name值來選擇其相應的action方法。同樣還是自定義乙個multibuttonattribute類,該類繼承actionnameselectorattribute類,該類**為:

[attributeusage(attributetargets.method, allowmultiple = false, inherited = true

)]public

class

multibuttonattribute : actionnameselectorattribute

public

override

bool isvalidname(controllercontext controllercontext, string

actionname, system.reflection.methodinfo methodinfo)

}

檢視上按鈕**為:

"

submit

" value="

submittoabout1

" name="

about1

"/>

"submit

" value="

submittoabout2

" name="

about2

"/>

控制器action**:

這樣就可以根據不同的按鈕的name,控制器來執行其相應的方法了。

學習封裝 MVC 3

一 配置載入類 1 建立配置路由 return array ctrl index action index 2 控制器層 1.判斷配置檔案是否存在 2.判斷當前配置是否存在 3.快取配置 載入單一配置 static public conf array static public function g...

MVC3學習總結

本文是閱讀了scottgu s blog來記錄的,外加自己的學習心得。一 razor razor是乙個新的檢視引擎,它實現了快速,流暢的編碼流程,使得檢視模板跟簡潔乾淨。1 靈活的選擇。add view.新建檢視模板的時候你可以選擇razor cshtml 模板檢視,或aspx c 模板檢視。2 r...

MVC3 安裝部署

iis5.1 1.安裝microsoft net framework 4.0安裝包 2.在iis中發布 建立虛擬目錄,asp.net版本選擇4.0.30196 3.新增mvc的解析 右擊iis中的虛擬目錄選擇 屬性 虛擬目錄 配置 對映 新增 配置如下 可執行檔案 c windows microso...