如何通过mvc 3中的提交按钮提交多个输入字段?

时间:2012-06-29 13:42:10

标签: asp.net-mvc asp.net-mvc-3 razor

通常,当您有多个输入字段时,它们都与一个ID绑定。因此,从View到数据库的映射非常简单。但是在我的情况下,我有多个输入(例如,一行上有2个文本框,另一行有下拉列表和文本框),每个输入都有一个id。我希望能够按下提交按钮并使其正确更新。

注意:formRow是一个ViewModel。

一些示例代码:

<div class="ctrl">
                &nbsp;
                @{
                    foreach (var rowInput in formRow.RowInput)
                    {  
                        switch (rowInput.RowCtrl.Type)
                        {
                            case "dropdown":
                                ; break;
                            case "text":
                               @Html.TextBoxFor(blah => rowInput.InputtedData) ; break;
                            case "radio":
                                ; break;
                            case "checkbox":
                                ; break;
                        }       
                    }
                }
            </div>
            <div class="done">
                <input id="@formRow.RowInput[0].InputtedDataID" type="button" value="button" />
            </div>

实际HTML源视图:

<div class="ctrl">
                &nbsp;
<input id="rowInput_InputtedData" name="rowInput.InputtedData" type="text" value="UP, UP, DOWN, DOWN, LEFT, LEFT, RIGHT, RIGHT, B, A, B, A, START" />            </div>
            <div class="done">
                <input id="2" type="button" value="button" />
            </div>

1 个答案:

答案 0 :(得分:1)

我得到你需要阅读一些MVC3基础知识的印象。从我收集的内容中,您只是尝试提交用于服务器端处理的表单数据,这与MVC3非常直接。通常情况下,你会有一个控制器,其动作能够返回一些ActionResult,它通常恰好是一个View,可视化你创建的底层模型。在视图中,您可以使用Html.BeginForm()来构建基于此模型的表单。

然后,提交按钮会将Post发送到同一个控制器,然后发送到能够处理结果模型的帖子的动作。

This blog post总结了你需要知道的最基本的部分:

  • 从Global.asax添加一个Route对象,表示您要捕获的某个URL模式并映射到控制器/操作
  • 添加一个Controller子类,应调用其[ControllerActions]以响应请求,填充ViewData
  • 添加使用ViewData呈现某些HTML的视图模板

根据您想要的技术方式,帖子的其余部分可能会或可能不会很有趣。

我建议您查看构建MVC3应用程序的一些基本介绍。尝试完成这一个:http://www.asp.net/mvc/tutorials/older-versions/javascript/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript