MVC从控制器传递ICollection到视图并返回控制器而不显示它

时间:2016-06-17 16:33:35

标签: c# asp.net .net asp.net-mvc

如果我的模型中有public string name {get;set;},我想将它从我的控制器传递到视图然后再传回控制器(在列表中 - >编辑 - >保存类型的示例)但是想要在视图中显示它,然后我只有一个@Html.HiddenFor...字段,它将与模型一起传递回我的控制器上的Save动作。我明白了。

如果我对一系列事情有相同的情况怎么办?例如,public virtual ICollection<Contact> Friends {get;set;},然后我想从控制器传递到视图不显示,但是它是否仍然存在并被传递回控制器?

由于

2 个答案:

答案 0 :(得分:0)

我会将其序列化为JSON字符串,然后使用@Html.HiddenFor帮助程序将其传回。在Save操作中,我会将其反序列化为ICollection<Contact>

例如:

string friends = JsonConvert.SerializeObject(Friends);

保存操作:

var friends = JsonConvert.DeserializeObject<ICollection<Contacts>>(myReturnData);

答案 1 :(得分:0)

根据您的用例,渲染整个Friends对象并将POST返回给您的控制器会很浪费。您可以缓存对象(在您的会话中,例如,如果它是短暂的)并且多选择只是POST您的联系人的ID。