MVC 3中Model Class属性中的空值

时间:2012-01-07 07:50:22

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

我有一个问题。我需要保存模型的所有值。 类

public class AssessmentAreaContent
{
  //SysAssessmentSubAreaCategory is enity model class
  public List<SysAssessmentSubAreaCategory> ListSysAssessmentSubAreaCategory;   
}

控制器

public ActionResult AssessmentArea(int id)
            { 
              var model = new AssessmentAreaContent();
                model.ListSysAssessmentSubAreaCategory = db.SysAssessmentSubAreaCategory.Where(c => c.AssessmentAreaId == id).ToList();
                return View(model);
            } 

Controller Http Post Method

 [HttpPost]
        public ActionResult AssessmentArea(Web.Models.AssessmentAreaContent assessmentAreaContent)
        {

            //assessmentAreaContent.ListSysAssessmentSubAreaCategory is null here ?? ; 
            return RedirectToAction("AssessmentArea", "AssessmentArea");
        }

查看

@model Web.Models.AssessmentAreaContent

@{
    ViewBag.Title = "Area";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm())
{
    @{ 

    if (Model != null)
                        {
       foreach (var category in Model.ListSysAssessmentSubAreaCategory)
                            {           


              <strong>@Html.EditorFor(item => category.AreaCategoryName)</strong>  
                <br />
       }
}
}
<input type="submit" name="button" class="btn" value="Save" />
}

我在assessmentAreaContent.ListSysAssessmentSubAreaCategory;中获得空值 我使用实体框架与MVC 3 我该怎么办?

由于

2 个答案:

答案 0 :(得分:1)

制作名称为SysAssessmentSubAreaCategory的编辑器模板。请注意,模板名称与列表对象的类型相同。在这个模板中写下像

这样的东西
@model Web.Models.SysAssessmentSubAreaCategory
<strong>@Html.EditorFor(item => category.AreaCategoryName)</strong>  
                <br />
主视图中的

只需进行这些更改

if (Model != null)
                        {
       Html.EditorFor(x=>x.ListSysAssessmentSubAreaCategory)
       }

保持其余不变。填写表格并张贴,你将在控制器中有值。

答案 1 :(得分:0)

ListSysAssessmentSubAreaCategory没有输入保留值,因此在回发后你可以填充该属性。

您需要将这些值保存在服务器端(例如在会话中)或以输入形式表示。