简体   繁体   English

MVC 3中“模型类”属性中的空值

[英]Null value in Model Class property in MVC 3

I have a question. 我有个问题。 I need to save all values of my model. 我需要保存模型的所有值。 Class

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

Controller 控制者

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 控制器Http Post方法

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

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

View 视图

@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" />
}

I m getting Null value in assessmentAreaContent.ListSysAssessmentSubAreaCategory; 我在rationalAreaContent.ListSysAssessmentSubAreaCategory中得到了空值assessmentAreaContent.ListSysAssessmentSubAreaCategory; Im using Entity Framework with MVC 3 How can I do that please ? 我在MVC 3中使用Entity Framework,请问该如何做?

Thanks 谢谢

make an editor template with the name SysAssessmentSubAreaCategory . 制作一个名为SysAssessmentSubAreaCategory的编辑器模板。 note that name of template is same as type of your list objects. 请注意,模板的名称与列表对象的类型相同。 in this template write something like 在这个模板中写一些像

@model Web.Models.SysAssessmentSubAreaCategory
<strong>@Html.EditorFor(item => category.AreaCategoryName)</strong>  
                <br />

in your main view just make these changes 在您的主视图中进行这些更改

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

leave the rest unchanged. 其余的保持不变。 fill out the form and post it and you will have values in the controller. 填写表格并将其发布,您将在控制器中获得值。

There is no input holding values for ListSysAssessmentSubAreaCategory so that in post back you have that property filled. ListSysAssessmentSubAreaCategory没有输入保持值,因此在回发中可以填充该属性。

You need that values to be saved server side (eg in session ) or be represented in input form. 您需要将该值保存在服务器端(例如,在session中)或以输入形式表示。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM