我有一个发送到视图的模型。此模型具有用于填充列表框的List元素。在这个视图中,我发布了一个控制器动作,传递我的模型作为参数。在回发时,我可以看到原始类型,但是,似乎无法访问列表。这是我的代码:
型号:
int mark = (int) (Math.random() * 10);
查看:
<?xml version="1.0" encoding="UTF-8"?><metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0" created="2018-02-16T02:07:28.816Z">
<recording-list count="72" offset="0">
<recording ext:score="100" id="6e702972-00c2-4725-b3e5-60e85ef0de25">
<title>T.N.T</title>
<artist-credit>
<name-credit>
<artist id="66c662b6-6e2f-4930-8610-912e24c63ed1">
<name>AC/DC</name>
</artist>
</name-credit>
</artist-credit>
<release-list>
<release id="ddaa5690-df97-4bb2-b93d-396fe5fb49d5">
<title>Live USA</title>
<release-group id="6b1ace64-bf92-3c42-8a1f-aea6fa08edec" type="Live">
<primary-type>Album</primary-type>
<secondary-type-list>
<secondary-type>Live</secondary-type>
</secondary-type-list>
</release-group>
<date>1990</date>
<country>DE</country>
<release-event-list>
<release-event>
<date>1990</date>
<area id="85752fda-13c4-31a3-bee5-0e5cb1f51dad">
<name>Germany</name>
<sort-name>Germany</sort-name>
<iso-3166-1-code-list>
<iso-3166-1-code>DE</iso-3166-1-code>
</iso-3166-1-code-list>
</area>
</release-event>
</release-event-list>
<medium-list>
<track-count>21</track-count>
<medium>
<position>2</position>
<format>CD</format>
<track-list count="11" offset="1">
<track id="caadf3b8-4a44-34c6-b9dc-c9870c5d9bc0">
<number>2</number>
</track>
</track-list>
</medium>
</medium-list>
</release>
</release-list>
</recording>
</recording-list>
</metadata>
控制器:
public class ReportInfoViewModel
{
public int report_id { get; set; } = 0;
public string report_name { get; set; } = "";
public string report_path { get; set; } = "";
public string plaza_param { get; set; } = "y";
public List<FacilityViewModel> facilitieslist { get; set; } = new List<FacilityViewModel>();
}
public class FacilityViewModel
{
public string facility_id { get; set; }
public string facility_name { get; set; }
}
我要做的是回发,将模型发送回控制器。除列表类型外,将发回所有基本类型。如何在帖子上发回列表模型?任何帮助表示赞赏。
答案 0 :(得分:0)
我能够在视图中创建一个隐藏字段,序列化列表并将其存储在隐藏字段中。
@using (Html.BeginForm("ViewReport", "Reports", Model, FormMethod.Post, new { target = "_blank" }))
{
string facilitiesListJson = Newtonsoft.Json.JsonConvert.SerializeObject(@Model.facilitieslist);
@Html.Hidden("FacilitiesList", facilitiesListJson);
//other form objects
}
在我的控制器操作中,我反序列化了隐藏字段(Request.Form)并访问列表。
string _jsonString = Request.Form["FacilitiesList"];
List<FacilityViewModel> _objList = JsonConvert.DeserializeObject<List<FacilityViewModel>>(_jsonString);