i have problem to pass data from view to controller , i have view that is strongly typed with my viewmodel “TimeLineModel”, in the first i passed to this view my viewmodel from action on my controller
public ActionResult confirmation(long socialbuzzCompaignId)
{
return View(new TimeLineModel() { socialBuzzCompaignId = socialbuzzCompaignId, BuzzMessages = model });
}
with this i can get info from my action and display it on view , but i have other action POST which i won’t get my view model to do some traitement
[HttpPost]
public ActionResult confirmation(TimeLineModel model)
{
}
i can get some propretie of the model but in others no , for example i can get the properti “socialBuzzCompaignId” of model , but other propertie like “IEnumerable BuzzMessages” i can’t get it , i dont now why !!
this is the content of my view
@model Maya.Web.Models.TimeLineModel
@{
ViewBag.Title = "confirmation";
}
@using (Html.BeginForm())
{
<h2>confirmation</h2>
<fieldset>
@foreach (var msg in Model.BuzzMessages)
{
<div class="editor-label">
@msg.LongMessage
</div>
<br />
}
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
You need to include BuzzMessages properties within a form element. Since it’s not editable, you’d probably want to use hiddens. There are two ways to do this. Easiest is instead of doing a
foreachloop, do aforloop and insert them by index.but to do this you’d need to use an IList instead of an IEnumerable in your view model to access by index.
Alternatively, you could create an Editor Template named after your BuzzMessages class (whatever its name is).
and then in your main page
Check out http://coding-in.net/asp-net-mvc-3-how-to-use-editortemplates/ or search stack overflow if the details of editor templates confuse you.