2012-12-21 90 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作为表单字段的名称。

相关问题