2016-04-26 5 views
-2

Привет, я совершенно новое с C# MVC, у меня есть проблемы, как, чтоМожно показать представление как часть другого представления в MVC

<div class="navbar-collapse collapse"> 
    <ul class="nav navbar-nav"> 
     <li>@Html.ActionLink("Trang Chủ", "Index", "Home")</li> 
     <li>@Html.ActionLink("Giới Thiệu", "About", "Home")</li> 
     <li>@Html.ActionLink("Tin Tức", "News", "Home")</li> 
     <li>@Html.ActionLink("Thăng Hạng", "Upgrade", "Home")</li> 
     <li>@Html.ActionLink("Thẻ Loyalty", "Card", "Home")</li> 
     <li>@Html.ActionLink("Tích Điểm", "Point", "Home")</li> 
    </ul> 
    @Html.Partial("_LoginPartial") 
</div> 

это в _layout.cshtml, эти ссылки теперь я жесткий код. В базе данных он содержит эту ссылку. Теперь я хочу, чтобы создать контроллер вид &, чтобы отобразить его

Контроллер

public ActionResult MenuFront() 
{return View(db.Loyalty_MenuFront.Where(m => m.MenuType == 1 && m.Display == 1 && m.ParentID == 0));} 

Посмотреть

@model IEnumerable<MPLoyalty_MVC.Models.Loyalty_MenuFront> 
@{foreach (var item in Model) 
{<li>@Html.ActionLink("" + item.Name, "" + item.Method, "" + item.Controller)</li>}} 

Но он не работает. Может ли кто-нибудь помочь мне, пожалуйста. Спасибо!

+0

Не могли бы вы опубликовать свой код здесь вместо изображений? – Zippy

+1

* Но это не работает. * Не помогает никому .. Можете ли вы опубликовать сообщение об ошибке/исключении – Izzy

+0

, я использую @ Html.Action («MenuFront») вместо жесткого кода, тогда он перехватит исключение перегрузки. Coz _layout загружает бесконечную петлю в MenuFront() –

ответ

0

Я считаю, что ваш частичный вид может быть сохранен под неправильной папкой в ​​вашем решении. Он должен находиться в той же папке, что и ваше представление, или должен находиться в папке «Представления»> «Общие».

0

Спасибо у ребят, я использовать Ajax для ее решения

<script> 
$(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     url: "/Home/MenuFront", 
     dataType: 'json', 
     success: function (data) { 
      for (var i = 0; i <= Object.keys(data).length; i++) { 
       $("#menu").append('<li><a href="/' + data[i].controller + '/' + data[i].method + '">' + data[i].name + '</a></li>'); 
      } 
     } 
    }); 
}); 

public ActionResult MenuFront() 
    { 
     var menu = db.Loyalty_MenuFront.Where(m => m.MenuType == 1 && m.Display == 1 && m.ParentID == 0) 
      .Select (m => new { 
       name = m.Name, 
       method = m.Method, 
       controller = m.Controller 
      }) 
      .ToList(); 
     return Json(menu); 
    } 
Смежные вопросы