国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET MVC實(shí)現(xiàn)多個按鈕提交的方法

2024-07-10 12:46:37
字體:
供稿:網(wǎng)友

有時候會遇到這種情況:在一個表單上需要多個按鈕來完成不同的功能,比如一個簡單的審批功能。

 

如果是用webform那不需要討論,但asp.net mvc中一個表單只能提交到一個Action處理,相對比較麻煩點(diǎn)。 

方法一:使用客戶端腳本 

比如我們在View中這樣寫:

<inputtype="submit"value="審核通過"onclick='this.form.action="<%=Url.Action("Action1")%>/><inputtype="submit"value="審核不通過"onclick='this.form.action="<%=Url.Action("Action2")%> /><inputtype="submit"value="返回"onclick='this.form.action="<%=Url.Action("Action3")%>" />

在點(diǎn)擊提交按鈕時,先改變Form的action屬性,使表單提交到按鈕相應(yīng)的action處理。 

但有的時候,可能Action1和2的邏輯非常類似,也許只是將某個字段的值置為1或者0,那么分開到二個action中又顯得有點(diǎn)多余了。 

方法二:在Action中判斷通過哪個按鈕提交 

在View中,我們不用任何客戶端腳本處理,給每個提交按鈕加好name屬性: 

<input type="submit" value="審核通過" name="action" /><input type="submit" value="審核不通過" name="action"/><input type="submit" value="返回" name="action"/>

然后在控制器中判斷:

[HttpPost] public ActionResult Index(string action /* 其它參數(shù)*/) {  if (action=="審核通過")  {   //  }  else if (action=="審核不通過")  {//  }  else  {   //  } }

幾年前寫asp代碼的時候經(jīng)常用這樣的方法… 

View變得簡單的,Controller復(fù)雜了。

 太依賴說View,會存在一些問題。假若哪天客戶說按鈕上的文字改為“通過審核”,或者是做個多語言版的,那就麻煩了。 

 方法三:使用ActionSelector 

關(guān)于ActionSelector的基本原理可以先看下這個POST使用ActionSelector控制Action的選擇。 

使用此方法,我們可以將控制器寫成這樣:

[HttpPost][MultiButton("action1")]public ActionResult Action1(){ // return View();}[HttpPost][MultiButton("action2")]public ActionResult Action2(){ // return View();}

在 View中: 

<input type="submit" value="審核通過" name="action1" /><input type="submit" value="審核不通過" name="action2"/><input type="submit" value="返回" name="action3"/>

此時,Controller已經(jīng)無須依賴于按鈕的Value值。 

MultiButtonAttribute的定義如下:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 芮城县| 沈丘县| 买车| 黄陵县| 惠东县| 翁源县| 崇左市| 维西| 建平县| 上犹县| 应城市| 萝北县| 徐闻县| 阳山县| 县级市| 奎屯市| 乌鲁木齐市| 信宜市| 通化市| 岢岚县| 常宁市| 体育| 宁河县| 颍上县| 汶川县| 青田县| 大丰市| 浦县| 夏津县| 阿尔山市| 牙克石市| 南投市| 石阡县| 济阳县| 湘西| 枣庄市| 获嘉县| 静宁县| 商城县| 于都县| 开鲁县|