Using Custom module API in MVC Widgets
Hi,
I'm struggling trying to create an MVC widget based on a custom module built using the module builder.
private Type myType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.SomeModel.ModuleName.Type"); public ActionResult Index() try DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(); IQueryable blah = dynamicModuleManager.GetDataItems(this.myType ); return View("Default", blah); catch return View("Error"); @model IQueryable<SitefinityWebApp.Mvc.Models.MyModel>Unable to cast object of type 'Telerik.Sitefinity.DynamicTypes.SomeModel.ModuleName.Type' to type 'SitefinityWebApp.Mvc.Models.MyModel'.@model IQueryable<Telerik.Sitefinity.DynamicTypes.SomeModel.ModuleName.Type>CS0234: The type or namespace name 'SomeModel' does not exist in the namespace 'Telerik.Sitefinity.DynamicTypes.Model' (are you missing an assembly reference?)Solved it!
In my controller:
private Type flightType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.LiveTest.Flight"); public ActionResult Index() try DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(); var Test = GetDataItems(); return View("Default", Test); catch return View("Error"); public List<DynamicContent> GetDataItems() DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(); var Test = dynamicModuleManager.GetDataItems(this.flightType) .Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true).ToList(); return Test;
And in my view:
@using Telerik.Sitefinity.Model@model List<Telerik.Sitefinity.DynamicModules.Model.DynamicContent><table> @foreach (var test in Model) <tr><td>@Html.Raw(test.GetValue("testNo").ToString())</td></tr> </table>
thanks for posting your solution. Helped me too!