将参数从HTML页面的View页面传递给控制器

时间:2013-03-01 12:12:43

标签: c# html asp.net-mvc

我在MVC工作。我有一个View say view1,它包含一个HTML表单,如下所示:

    <form action='/Exercise/Exercise4_SubmitForm' method="post">
    Name: <input type="text" name="name" /><br />
    Emp: <input type="text" name="id" /><br />
    DateofBirth: <input type="text" name="Dateofbirth" /><br />
    Age: <input type="text" name="age" /><br />
    .
    so on
    .
    .
    <input type="submit" name="submit" value="Save" />
    </form>

我有17个文本框,我之前只提到了4个。

现在mvc动作方法必须

    public ActionResult Exercise4(string name, string code, string age, string dateofBirth,...)
    {
      //my code here
    }

我的问题是 有没有办法我不必在上面给出的mvc动作方法中指定每个17个参数。因为下次有可能有70个参数然后指定每个参数是非常繁琐的工作。 “我不想使用HTML Helpers。”

请帮助我!!!

2 个答案:

答案 0 :(得分:2)

创建模型

public class YourModel
{
    public string name {get;set;}
    public string code {get;set;}
    public string age {get;set;}
    public string date {get;set;}
    .
    .
    .
}

然后,在视图顶部放置

@model Namespace.YourModel

之后用

切换所有输入
@Html.EditorFor(m => m.name)
@Html.EditorFor(m => m.code)
@Html.EditorFor(m => m.age)
@Html.EditorFor(m => m.date)

如果您不确定如何执行此最后一部分,请创建一个新视图并选中创建强类型视图,然后从组合框中选择您的模型。 根据您的需要选择脚手架模板。这是一个插入,编辑,删除,列表....

接收帖子的操作将接收您的模型

public ActionResult Exercise4(YourModel model)
    {
      //my code here
    }

答案 1 :(得分:0)

如果我是你,我会首先考虑:http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-5

事实是你的表单中的字段必须是模型的一部分(你正在使用MVC吗?)然后帖子将包含你的模型。