ViewModel属性null In From post mvc 4

时间:2014-03-24 05:52:13

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

我有这个viewmodel:

public class PostRequirements 
    {
        public List<Question> _questions { get; set; }
        public List<string> _documents { get; set; }

    }

以下是我的主要观点:

@using (Html.BeginForm("SavePostReq", "Post", 
                       FormMethod.Post, 
                       new { enctype = "multipart/form-data" }))
{
    if (Model._questions != null)
    {
        @Html.Partial("~/Views/Shared/_appQuestions.cshtml", Model._questions)
    }
    if (Model._documents != null)
    {
        @Html.Partial("~/Views/Shared/_appDocuments.cshtml", Model._documents)
    }
    <input type="submit" class="btn btn-success" value="Submit" />
}

以下是我的_appQuestions.cshtml观点:

@model IEnumerable<Core.Model.Question>

<input type="hidden" name="ApplId" value="1" />
<h3>Questions</h3>
<table>
    @foreach (var item in Model)
    {
        <tr>
            <td style="vertical-align: top;">
                @Html.DisplayFor(modelItem => item.Title)
            </td>
            <td style="width: 70%;">

                <textarea id="@item.Id" name="@item.Id" style="width: 300px;height: 70px;"></textarea>
            </td>
        </tr>
        }


</table>

这是后期行动:

public ActionResult SavePostReq(PostRequirements preq)
            {

                return RedirectToAction("Result", new { id = 2 });
            }

我的模型preq不为null,但_questions_documents在帖子中显示为空。

2 个答案:

答案 0 :(得分:0)

直接将Model对象(而不是Model._questions)传递给两个局部视图,并在for循环中使用Model._questions [i] .Title,如this post上的答案所示

答案 1 :(得分:0)

您的行动期待PostRequirements,但您要通过QuestionDocuments。我认为viewModel在你想要显示数据时更好,但是在retreiving时你必须自定义绑定器。浏览此页面Custom Model Binder 我希望它会对你有所帮助。