Я получил это, чтобы работать для меня:
Вот мои Views / Policy / Index.cshtml
@using (Html.BeginForm("Submit", "Policy")) {
<fieldset>
@Html.EditorForModel()
</fieldset>
}
Вот мои Views / Shared / EditorTemplates / Policy.cshtml
@model Policy
<br />
<label for="IsPositive">Is positive?</label>
@Html.CheckBox("IsPositive")
<input type="text" name="PolicyText" />
<input type="submit" value="Add to Policy" title="SubmitFromReferalPolicy" />
@Html.EditorFor(a => a.PolicyLines)
Вот мои представления / Shared / EditorTemplates / PolicyLine.cshtml
@model PolicyLine
<br />
@this.Model.ToString()
@Html.ActionLink("Delete", "DeleteLine/" + Model.Identifier.ToString())
Вот мои Policy.cs
public class Policy
{
public string Id { get; set; }
public List<PolicyLine> PolicyLines = new List<PolicyLine>();
public override string ToString()
{
return PolicyFormatter.FormatPolicy(this);
}
}
Вот мои PolicyLine.cs
public class PolicyLine
{
public bool IsPositive { get; set; }
public string PolicyText { get; set; }
public Guid Identifier { get; set; }
public override string ToString()
{
return PolicyFormatter.FormatPolicyLine(this);
}
}
Вот мой метод добавления из PolicyController.cs
[HttpPost]
public ActionResult Submit(PolicyLine submitted)
{
Policy saveMe = Policy.GetPolicyFromUserName(UserName);
submitted.Identifier = Guid.NewGuid();
saveMe.PolicyLines.Add(submitted);
Store.Write(saveMe);
return RedirectToAction("Index");
}
Вот мой метод удаления из PolicyController.cs
public ActionResult DeleteLine(Guid identifier)
{
Policy saveMe = Policy.GetPolicyFromUserName(UserName);
PolicyLine removeMe = saveMe.PolicyLines.Find(p => p.Identifier == identifier);
saveMe.PolicyLines.Remove(removeMe);
Store.Write(saveMe);
return RedirectToAction("Index");
}