2012-12-21 151 views
0

我有一個表格中定義爲提交表單視圖到控制器

using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 

這種形式我的形式視圖contins若干類型的按鈕輸入和按鈕的

<input type="submit" value="val1" name="action"> 
<input type="submit" value="val2" name="action"> 
<input type="submit" value="val3" name="action" /> 
<button class="button" type="submit" name="action" value="val4">Val4</button> 

我有2個控制器,用於這種觀點

Public ActionResult form{ 
} 

[HttpPost] 
public ActionResult form(String button) 
{ 
    switch (actionType) 
    { 
    case "val1": 
     return RedirectToAction("AnotherView"); 
    case "val2": 
     return RedirectToAction("AnotherView2"); 
    default: 
     return RedirectToAction("AnotherView3"); 
    } 
} 

但無論按鈕我點擊,我被重定向到主頁的形式定義

using (Html.BeginForm("Index", "Home", 

我的問題是如何解決這個問題,我怎麼能肯定的是,這個帖子的方法,勢必我剛剛輸入了什麼?

回答

0
using (Html.BeginForm("action_name", "controllername", FormMethod.GET, new { enctype = "multipart/form-data" })) 

使用輸入類型選擇:

<select name="action"> 
<option value="val1" >val1</option> 
<option value="val2" >val2</option> 
<option value="val3" >val3</option></select> 

和方法在控制器

public ActionResult action_name(String action){ 
    switch (action) 
    { 
     case "val1": 
      return RedirectToAction("AnotherView"); 
     case "val2": 
      return RedirectToAction("AnotherView2"); 
     default: 
      return RedirectToAction("AnotherView3"); 
    } 
} 
+0

無論動作值如何,都會進入編輯方式 – jpo

+0

提交表單後是否出錯? – heriawan

+0

沒有錯誤。它只是轉到我的控制器的action_name方法。順便說一句,你是什麼意思由action_name和控制器名稱在「使用(Html.BeginForm(」action_name「,」控制器名稱「...」。你的意思是action_name =方法名= form(對於我的例子)和controllername = HomeController這是我的表單方法的控制器的名稱)? – jpo

0

如果指定一個名爲action MVC的表單字段將其解釋爲控制路由的行動至。因此點擊val1將最終執行的方法:

public ActionResult val1() 
{ 
} 

如果這個方法不存在,你的錯誤處理將接管。

解決方案:請勿使用action作爲表單字段的名稱。

相關問題