Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • pat 124 posts 346 karma points
    Feb 09, 2017 @ 15:43
    pat
    0

    how to use @model in partial view and return list from controller to view

    hi all,

    ok what I am trying to achieve here is generate a list of objects and return to view like return View(list); list is List

    Then in view I wanted to display this in table /grid but I have few problems

    @model IEnumerable<myCodeProject.Models.bookModel>
    @using Umbraco.Web
    @using System.Web.Mvc.Html
    @if (Umbraco.MemberIsLoggedOn())
    {
    
        <p>Books</p>
    
            <table>
                <tr>
                    <td>Ref No</td>
                    <td>Type</td>
                    <td>Name</td>
                    <td>Status</td>
                    <td>Details</td>
                </tr>
                @foreach (var item in Model)
                {
                <tr>
                    <td>@item.refno</td>
                    <td>@item.type</td>
                    <td>@item.name</td>
                    <td>@item.status</td>
                    <td><a href="/books/book-details/?cno=" @item.id>View</a></td>
                </tr>
    
                }
    
            </table>
    
    
    }
    else
    {
        Session.Add("NeedRedirect", Request.Url.ToString());
        { Html.RenderPartial("~/Views/Partials/myCodeProject/icLogin.cshtml", new myCodeProject.Models.icLoginModel(), new ViewDataDictionary { { "mymsg", "1" } }); }
    
    }
    

    then in macro partial I am calling my partial view - as i don't want to create template for each feature

    @inherits Umbraco.Web.Macros.PartialViewMacroPage
    @using myCodeProject.Models
    @{Html.RenderPartial("~/Views/Partials/myCodeProject/Listbooks.cshtml",new bookModel());}
    

    in my controller I am generating book list from a third party service and return View (list)

    problem 1. I get error MemberIsLoggedOn() is not list on Umbraco error. if i take that if condition off to check my book listing

    problem 2 I get error

    the model item passed into the dictionary is of type 'myCodeProject.Models.bookModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[myCodeProject.Models.bookModel]'.

    that mean to use @model in my partial view I cannot call macropartial to render my view

    not sure I am trying to aproach some this wrong here , I cannot add view to template other wise i'll end up with adding too many templates .

    I have noticed that when you call partial view from macro surfacecontroller not hit the Index() method either.

  • Alex Brown 129 posts 620 karma points
    Feb 09, 2017 @ 23:34
    Alex Brown
    0

    I'm not sure about problem 1. To resolve problem 2 you need to pass an IEnumable/List into your view.

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies