将动态列表返回给MVC后调用

时间:2013-07-12 18:03:45

标签: asp.net-mvc asp.net-mvc-4

我有一个正在发送到我的视图的动态创建的问题列表。有时会有5个问题,有时候会有20个问题。我遇到的问题是在后调用上传回值。

数据传递给了调用后

question1:first answer
question2:second answer
question3:third answer
question4:and so on...
question5:and so on...

理论上,对于我的模型,我可以做这样的事情

[HttpPost]
public ActionResult Index(String question1, ..., String question100) {
   //code
}

但这只是荒谬的。我正在尝试的实质上是将一个字符串列表传回给控制器。但我不确定如何实现这一目标。

查看代码(某些行已被删除或重命名)

@using MyWebsite.Models
@model List<QuestionModel>

@Scripts.Render("~/bundles/jqueryval")

<div>
    @using (Html.BeginForm()) {
        int questionNum = 0;
        foreach (QuestionModel question in @Model) {
                questionNum++;    
                <label>@question.Question</label>
                <label class="comment">@question.Comments</label>

                <input data-val="true" data-val-required="This question is required." id="@("question"+questionNum)" name="@("question"+questionNum)" type="text" value=""/>
                <span class="field-validation-valid" data-valmsg-for="@("question"+questionNum)" data-valmsg-replace="true"></span>   
        }

        <input type="submit" value="Submit Report" />
    }
</div>

1 个答案:

答案 0 :(得分:2)

控制器:

    [System.Web.Http.HttpPost]
    public ActionResult Index(List<string> values)
    {
        return View();
    }

查看:

    <form action="/Sample/Index">

        <input id="values_0" name="values" />
        <input id="values_1" name="values" />

        <input type="submit" value="Enviar"/>
    </form>