Member 10262527 Ответов: 1

MVC рендеринг частичного представления с действием от контроллера


Привет,
я новичок в MVC, может ли кто-нибудь сказать мне, как использовать действие из контроллера при рендеринге частичного представления в представлении.

например, у меня есть модель пользователей:

public class items
    {
        public string itemname{ get; set; }
        public int itemid{ get; set; }
       
    }


и я возвращаю список пользователей с помощью storeproc

public static List<items> GetAvailableItems(int userid, string applicationcode)
{
          var dbcontext = new MasterDataContext();
          var applications = dbcontext.SPGeTItemList(userid
                                     , applicationcode).ToList();
          var appList = new List<Items>();
            if (applications.Any())
            {
                appList.AddRange(applications.Select(apps => new Items() 
                                    { appName =   apps.APPLICATION_CODE }));
            }
         return appList;
}


в моем контроллере у меня есть действие в моем контроллере
public ActionResult Applications()
        {
            const string strApplicationCode = "APP";
            int userid = Convert.ToInt32(HttpContext.Current.Session["sysUserId"]);
            var applist = GetAvailableItems(userid, strApplicationCode);

            return PartialView(applist);
        }


И частичным видом изделия.cshtml по
@model Items

@{
    ViewBag.Title = "Items";
}

<h2>Items</h2>
<table>
    <tr>
        <th>
            itemname
        </th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.itemname)
           
        </td>
        
    </tr>
}

</table>


и я передаю этот частичный вид в своем основном виде

@{
    ViewBag.Title = "Home";
}
<div class="rdPanel">
    @Html.DevExpress().RoundPanel(
            settings =>
            {
                settings.Name = "rpFeatures";
                settings.HeaderText = "Available Items";
                settings.Width = 800;
                settings.SetContent(() =>
                {
                    Html.RenderPartial("Items");
                } );
            }).GetHtml()
</div>


Но как я могу использовать свое действие, чтобы получить список из БД?

спасибо

1 Ответов

Рейтинг:
8

Mehdy Moini

Если вы хотите вызвать результат действия, который возвращает частичное представление, вы можете использовать Html.RenderAction()

http://www.dotnet-tricks.com/Tutorial/mvc/Q8V2130113-RenderPartial-vs-RenderAction-vs-Partial-vs-Action-in-MVC-Razor.html[^]