C# 发送到控制器后,ViewModel中的列表丢失
我在细节屏幕中有一个视图模型。它可以显示所有的信息,但是当我把虚拟机发送到一个打印功能时,这个功能除了返回部分视图之外什么也不做,我会丢失电话号码和电子邮件的自定义列表。它们在打印函数中显示为空列表。知道为什么吗 我的视图模型C# 发送到控制器后,ViewModel中的列表丢失,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,我在细节屏幕中有一个视图模型。它可以显示所有的信息,但是当我把虚拟机发送到一个打印功能时,这个功能除了返回部分视图之外什么也不做,我会丢失电话号码和电子邮件的自定义列表。它们在打印函数中显示为空列表。知道为什么吗 我的视图模型 public List<PhoneDetails> Phones {get; set; } public List<EmailDetails> Email { get; set; } 出现问题的
public List<PhoneDetails> Phones {get; set; }
public List<EmailDetails> Email { get; set; }
出现问题的重定向方法是:
<li role="presentation" class="pull-right"><a href="@Url.Action("Print", "ControllerName", Model)" target="_blank">Print / Full Detail View</a></li>
将列表传递给控制器有两种解决方案:1)使用表单标签:
@using(Html.BeginForm( // your paramas ))
{
@if (Model.Phones.Count > 0)
{
foreach (var phone in Model.Phones)
{
<p>
phone.PhoneType Phone: <span class="policy-bold">phone.PhoneNumber</span>
</p>
}
}
else
{
<p>Phone Number: <span class="policy-bold">N/A</span></p>
}
}
你能分享你的提交代码吗?是的,那是我的问题。我使用了url.Action,它只传递字符串而不是集合。谢谢你的回答。我用另一种方法解决了问题,但你的方法很有帮助。
<li role="presentation" class="pull-right"><a href="@Url.Action("Print", "ControllerName", Model)" target="_blank">Print / Full Detail View</a></li>
@using(Html.BeginForm( // your paramas ))
{
@if (Model.Phones.Count > 0)
{
foreach (var phone in Model.Phones)
{
<p>
phone.PhoneType Phone: <span class="policy-bold">phone.PhoneNumber</span>
</p>
}
}
else
{
<p>Phone Number: <span class="policy-bold">N/A</span></p>
}
}
var premisesViewModel = $('form').serializeObject();
$.ajax({
url: form.attr('action'),
type: 'POST',
dataType: "json",
contentType: 'application/json',
data: JSON.stringify(premisesViewModel),
success: function (data) {
alert('done');
}
});