なぜこのエラーが発生するのかわかりません:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
いくつかの組織を含むデータベースがあり、各組織は複数のドメインを持つことができます。私が設定した方法は、ドメインを削除するための通常の actionLink だけを持つことです。コードは次のようになります。
public ActionResult DeleteDomain(OrganizationDomainAddressView dd)
{
var org = OrganizationRepo.GetByID(dd.OrganizationID);
if (ModelState.IsValid)
{
org.DomainAddresses.Remove(new OrganizationDomainAddress(dd.OrganizationID, dd.DomainAddress));
OrganizationRepo.Delete(org);
}
OrganizationView orgInfo = (OrganizationView)Mapper.DynamicMap(org, typeof(Organization), typeof(OrganizationView));
var domainList = orgInfo.DomainAddresses;
var ACD = new OrganizationDomainAddressView();
ViewData["ACD"] = ACD;
ViewBag.OrganizationID = dd.OrganizationID;
return PartialView("_EmailDomainPartial", domainList);
}
ここに私が取り組んでいるビューがあります:
@model IEnumerable<AdminTool.Models.ViewModel.OrganizationDomainAddressView>
@using AdminTool.Models.ViewModel;
@{
OrganizationDomainAddressView ACD = (OrganizationDomainAddressView) ViewData["ACD"];
}
<div id="domains">
@foreach (var item in Model)
{
<div class="item">
@item.DomainAddress — @Html.ActionLink("Delete", "DeleteDomain", "Organizations", new { dd = item.DomainAddress })
</div>
}
<div class="item">
@Html.Hidden("OrganizationID", (int)ViewBag.OrganizationID)
</div>
@Html.Partial("_EmailDomainAddPartial", ACD)
</div>
そしてビューモデル:
public class OrganizationDomainAddressView
{
public OrganizationDomainAddressView(string domainAddress, int organizationId)
{
DomainAddress = domainAddress;
OrganizationID = organizationId;
}
public OrganizationDomainAddressView()
{ }
[AtLeastOneRequired(ErrorMessageResourceType = typeof(AdminResource), ErrorMessageResourceName = "OrganizationEmailDomainRequired")]
[Display(ResourceType = typeof(AdminResource), Name = "OrganizationValidEmailDomain")]
[RegularExpression(@"@[a-z0-9.-]+\.[a-z]{2,4}", ErrorMessageResourceType = typeof(AdminResource), ErrorMessageResourceName = "OrganizationEmailFormatError")]
public string DomainAddress { get; set; }
public int OrganizationID { get; set; }
}
コードは、次の行のコントローラーでエラーが発生しています。
org.DomainAddresses.Remove(new OrganizationDomainAddress(dd.OrganizationID, dd.DomainAddress));
これがなぜなのかわかりません。どんな助けでも素晴らしいでしょう!