使用asp.net MVC4中的父视图删除部分视图信息
我的删除视图如下所示:使用asp.net MVC4中的父视图删除部分视图信息,asp.net,asp.net-mvc-4,view,partial,Asp.net,Asp.net Mvc 4,View,Partial,我的删除视图如下所示: @model Pdsl.Sms.Entities.Models.Common.BranchInfo @{ ViewBag.Title = "Delete"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Delete</h2> <h3>Are you sure you want to delete this?</h3> <fieldset> <lege
@model Pdsl.Sms.Entities.Models.Common.BranchInfo
@{
ViewBag.Title = "Delete";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>BranchInfo</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.CompanyId)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.CompanyId)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.BranchTypeId)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.BranchTypeId)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.BranchName)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.BranchName)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.Description)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Description)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.EntryDate)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.EntryDate)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.EntryBy)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.EntryBy)
</div>
<div>
@Html.Partial("Delete_ContactDetailPartialView", Model.ContactDetails)
//partial view
</div>
</fieldset>
@using (Html.BeginForm()) {
<p>
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}
删除确认正确显示。
但单击“删除”按钮时,会出现以下错误:
Object reference not set to an instance of an object.
Line 55:
Line 56: <div>
Line 57: @Html.Partial("Delete_ContactDetailPartialView", Model.ContactDetails)
Line 58: </div>
Line 59:
对象引用未设置为对象的实例。
第55行:
第56行:
第57行:@Html.Partial(“删除_ContactDetailPartialView”,Model.ContactDetails)
第58行:
第59行:
使用脚手架时,默认情况下它不会映射子实体。在视图中,需要添加局部视图,还需要编写代码以正确显示和保存它们
首先,我建议在BranchInfo类中添加一个默认构造函数:
public class BranchInfo
{
public BranchInfo()
{
BranchName = "";
Description = "";
EntryDate = DateTime.Now;
EntryBy = "";
ContactDetails = new ContactDetails();
}
[Key]
public int CompanyId { get; set; }
public int BranchTypeId { get; set; }
public string BranchName { get; set; }
public string Description { get; set; }
public DateTime EntryDate { get; set; }
public string EntryBy { get; set; }
public ContactDetails ContactDetails {get;set;}
}
创建新BranchInfo时,在控制器中传递该类的实例:
// GET: /BranchInfo/Create
public ActionResult Create()
{
BranchInfo model = new BranchInfo();
return View(model);
}
和Create.cshtml,您可以附加局部视图:
<div class="editor-label">
@Html.LabelFor(model => model.ContactDetails)
</div>
<div class="editor-field">
@Html.Partial("Create_ContactDetailPartialView", Model.ContactDetails)
</div>
@LabelFor(model=>model.ContactDetails)
@Html.Partial(“创建_ContactDetailPartialView”,Model.ContactDetails)
现在,每次保存任何BranchInfo时,它都有一个子ContactDetails。因此,当您尝试删除时,您可以毫无困难地传递ContactDetails。当您使用scaffolding时,默认情况下它不会映射子实体。在视图中,需要添加局部视图,还需要编写代码以正确显示和保存它们 首先,我建议在BranchInfo类中添加一个默认构造函数:
public class BranchInfo
{
public BranchInfo()
{
BranchName = "";
Description = "";
EntryDate = DateTime.Now;
EntryBy = "";
ContactDetails = new ContactDetails();
}
[Key]
public int CompanyId { get; set; }
public int BranchTypeId { get; set; }
public string BranchName { get; set; }
public string Description { get; set; }
public DateTime EntryDate { get; set; }
public string EntryBy { get; set; }
public ContactDetails ContactDetails {get;set;}
}
创建新BranchInfo时,在控制器中传递该类的实例:
// GET: /BranchInfo/Create
public ActionResult Create()
{
BranchInfo model = new BranchInfo();
return View(model);
}
和Create.cshtml,您可以附加局部视图:
<div class="editor-label">
@Html.LabelFor(model => model.ContactDetails)
</div>
<div class="editor-field">
@Html.Partial("Create_ContactDetailPartialView", Model.ContactDetails)
</div>
@LabelFor(model=>model.ContactDetails)
@Html.Partial(“创建_ContactDetailPartialView”,Model.ContactDetails)
现在,每次保存任何BranchInfo时,它都有一个子ContactDetails。因此,当您尝试删除时,您可以毫无困难地传递ContactDetails