Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 插入1个父行和多个子行Asp.net MVC_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 插入1个父行和多个子行Asp.net MVC

Asp.net mvc 插入1个父行和多个子行Asp.net MVC,asp.net-mvc,Asp.net Mvc,因此,我正在创建一个系统,您可以在其中创建表单并将其存储在数据库中,该数据库将显示特定类型的报告 在报告中,您将在报告表中输入1行,其中包含默认报告数据,如报告所有者、提交日期、状态等 在同一个create页面上,我希望从数据库中存储的已创建表单中获取所有值,到目前为止,我已设法使显示的表单与报告一起正确显示 DB中表单的每个输入将是ReportValues表中的一个条目 目前,我可以从Create视图获取报告,但ReportValue的条目不会返回到Create Iaction 请帮助:/ 型

因此,我正在创建一个系统,您可以在其中创建表单并将其存储在数据库中,该数据库将显示特定类型的报告

在报告中,您将在报告表中输入1行,其中包含默认报告数据,如报告所有者、提交日期、状态等

在同一个create页面上,我希望从数据库中存储的已创建表单中获取所有值,到目前为止,我已设法使显示的表单与报告一起正确显示

DB中表单的每个输入将是ReportValues表中的一个条目

目前,我可以从Create视图获取报告,但ReportValue的条目不会返回到Create Iaction

请帮助:/

型号:

public class Report
{
    public Report()
    {
        //Set default Submission Date to the current date.
        this.SubmissionDate = DateTime.Now;
        this.Status = "New";
    }

    public int ID { get; set; }

    [ForeignKey("Form")]
    public int formID { get; set; }

    [StringLength(5, MinimumLength = 3)]
    public String Abreviation { get; set; }

    [Display(Name = "Submitted By")]
    public String Owner { get; set; }


    [RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
    public String Category { get; set; }

    public String Status { get; set; }

    [DataType(DataType.Date), Display(Name = "Submit Date")]
    public DateTime SubmissionDate { get; set; }

    }
}

    public class ReportValues
{
    public int ID { get; set; }
    [ForeignKey("Report")]
    public int reportId { get; set; }
    public String title { get; set; }
    public String value { get; set; }
}
}

    public class FormReportViewModel
{
    public Report Report { get; set; }
    public int reportID { get; set; }
    public String formCode { get; set; }
    public String abv { get; set; }
    public String category { get; set; }
    public IEnumerable<ReportValues> ReportValues { get; set; }
}
}
视图:

模型IEnumerable
@使用System.Security.Claims;
@{
ViewData[“标题”]=“创建”;
}
创造
报告

@*Html.Raw(Model.First().formCode)*@ @* 下面的代码来自“创建报告值”页面 *@ 标题 价值 标题 价值 标题 价值 返回列表
来自注释:您在FormReportViewModel中有一个NRE,ReportValues为空

IEnumerable
更改为
List
,在FormReportViewModel中添加构造函数并创建ReportValues的实例

public class FormReportViewModel
{ 
  public Report Report { get; set; }
  public int reportID { get; set; }
  public String formCode { get; set; }
  public String abv { get; set; }
  public String category { get; set; }
  public List<ReportValues> ReportValues { get; set; }

  public FormReportViewModel()
  {
      ReportValues=new List<ReportValues>(); 
  }

}
公共类FormReportViewModel
{ 
公共报表{get;set;}
public int reportID{get;set;}
公共字符串formCode{get;set;}
公共字符串abv{get;set;}
公共字符串类别{get;set;}
公共列表ReportValues{get;set;}
public FormReportViewModel()
{
ReportValues=新列表();
}
}

请添加FormReportViewModelEdited的定义,使用模型请求编辑原版,如果不看到视图,很难判断是否添加了视图,以便澄清,我从数据库中提取HTML,但在当前注释掉的代码中,我硬编码元素,方法是从实际创建ReportValues页面获取代码,因为数据库中的呈现表单不工作,所以条目返回为null?或者为空?您的意思是ReportValues=构造函数中的新列表(ReportValues)?它在“List()”上抛出了一个错误;错误是什么?(在这些QA网站上提问时,你必须非常具体,不要等到有人问你错误是什么)抱歉,你必须在列表中指定类型,回答更新抱歉含糊不清,我会尽量更具体。好的,现在报告提交很好,没有发生错误,但是reportvalues字段的输入值仍然没有输入到reportvalues表中。是的,关于这一点,您的视图中有IEnumerable模型,但在创建操作中,您收到一个对象,另外,我不明白您是如何在视图中绑定ReportValues细节的。
model IEnumerable<FormReportViewModel>
@using System.Security.Claims;

@{
ViewData["Title"] = "Create";
}

<h2>Create</h2>
<form asp-action="Create">
    <div class="form-horizontal">
        <h4>Report</h4>
        <hr />
        <div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="@Model.First().Report.Abreviation" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="@Model.First().Report.Abreviation" class="form-control" value="@Model.First().abv" readonly="readonly"/>
                <span asp-validation-for="@Model.First().Report.Abreviation" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="@Model.First().Report.Category" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="@Model.First().Report.Category" class="form-control" value="@Model.First().category" readonly="readonly"/>
                <span asp-validation-for="@Model.First().Report.Category" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="@Model.First().Report.Owner" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="@Model.First().Report.Owner" class="form-control" value=@User.GetUserName() readonly="readonly"/>
                <span asp-validation-for="@Model.First().Report.Owner" class="text-danger" />
            </div>
        </div>
        <div class="form-group">
            <label asp-for="@Model.First().Report.Status" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="@Model.First().Report.Status" class="form-control" value="New" readonly="readonly"/>
                <span asp-validation-for="@Model.First().Report.Status" class="text-danger" />
            </div>
        </div>
       @*Html.Raw(Model.First().formCode)*@
       @*
            The code below is from the Create ReportValues page    
       *@
        <div class="form-group">
            <label class="col-md-2 control-label" for="title">title</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="title" name="title" value="Animal Name" />
                <span class="text-danger field-validation-valid" data-valmsg-for="title" data-valmsg-replace="true" />
            </div>
        </div>
        <div class="form-group">
            <label class="col-md-2 control-label" for="value">value</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="value" name="value" value="" />
                <span class="text-danger field-validation-valid" data-valmsg-for="value" data-valmsg-replace="true" />
            </div>
        </div>

        <div class="form-group">
            <label class="col-md-2 control-label" for="title">title</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="title" name="title" value="Animal Weight" />
                <span class="text-danger field-validation-valid" data-valmsg-for="title" data-valmsg-replace="true" />
            </div>
        </div>
        <div class="form-group">
            <label class="col-md-2 control-label" for="value">value</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="value" name="value" value="" />
                <span class="text-danger field-validation-valid" data-valmsg-for="value" data-valmsg-replace="true" />
            </div>
        </div>

        <div class="form-group">
            <label class="col-md-2 control-label" for="title">title</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="title" name="title" value="Animal Colour" />
                <span class="text-danger field-validation-valid" data-valmsg-for="title" data-valmsg-replace="true" />
            </div>
        </div>
        <div class="form-group">
            <label class="col-md-2 control-label" for="value">value</label>
            <div class="col-md-10">
                <input class="form-control" type="text" id="value" name="value" value="" />
                <span class="text-danger field-validation-valid" data-valmsg-for="value" data-valmsg-replace="true" />
            </div>
        </div>



        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
</form>




<div>
    <a asp-action="Index">Back to List</a>
</div>
public class FormReportViewModel
{ 
  public Report Report { get; set; }
  public int reportID { get; set; }
  public String formCode { get; set; }
  public String abv { get; set; }
  public String category { get; set; }
  public List<ReportValues> ReportValues { get; set; }

  public FormReportViewModel()
  {
      ReportValues=new List<ReportValues>(); 
  }

}