问题1解决方案:
Q1的问题在于,我在控制器中分配的属性值未从表单发布中解析出来,因为该属性不存在。
为该属性添加了一个隐藏字段,以纠正讨厌的null。
<div > <span> @Html.HiddenFor(m => m.allocationType) @Html.TextBoxFor(m => m.subnet, new { @class = "checkFiller" }) </span> </div>问题2解决方案:
我将第一个模型的GUID作为第二个模型的前缀附加在一起时遇到的问题,很大程度上是由于我如何使用AJAX向控制器操作方法发送数据。
下面显示的代码段解决了这些问题,并显示了正确绑定的GUID。
name="pa_ipv4s[f7d8d024-5bb6-451d-87e3-fd3e3b8c1bba].requestedIps[d5c08a43-f65e-46d1-b224-148225599edc].subnet"
现在显示在动态创建的模型属性上,而不仅仅是最初创建的。
在Visual Studio中的调试中运行并将鼠标悬停在模型上时,深入挖掘数据将显示模型列表的正确计数。
控制器ActionMethod:
public ActionResult ExistingManager(string containerPrefix) { ViewData["ContainerPrefix"] = containerPrefix; return PartialView("ExistingIpView", new IpAllocation { allocationType = "Existing" }); }调用Controller ActionMethod的AJAX GET方法:
$('#addItemEIpM').on('click', function () { $.ajax({ url: '@Url.Action("ExistingManager")', cache: false, data: 'containerPrefix=' + $('#addItemEIpM').data('containerprefix'), success: function (html) { $("#editorRowsEIpM").append(html); } }); return false; });


