在多个视图中显示好友列表

时间:2015-08-22 16:45:19

标签: c# model-view-controller

我目前正在处理需要朋友列表的项目,现在,我有代码在家庭控制器运行时显示列表:

    public ActionResult Index()
    {
        var friendslist = new FriendsList();
        if (HttpContext.User.Identity.IsAuthenticated)
        {
            var userid = HttpContext.User.Identity.GetUserId().ToString();
            var model = _friend.FriendsList
                .OrderBy(f => f.RequesteeID)
                .Where(f => f.RequesterID == userid).ToList()
                .Select(f => new FriendsList
                {
                    UserName = f.UserName
                });

            return View(model);
        }

        return View();
    }

视图的代码是:

<ul class="dropdown-navbar dropdown-menu">
<li class="nav-header">
    <i class="fa fa-check"></i>
    Friends List
</li>

@foreach (var item in Model)
{
    <li>
        <a href="#">
            <div class="clearfix">
                <span class="pull-left">@Html.DisplayFor(modelItem => item.UserName)</span>
            </div>
        </a>
    </li>
}

正如您可以想象的那样,这在导航到家庭控制器时工作正常,但是当我离开时,我收到错误,让我知道该操作未得到处理。我的问题是,有没有办法重用家庭控制器中的代码而不将其粘贴到需要它的每个其他控制器。我感谢任何帮助。

麦克

2 个答案:

答案 0 :(得分:2)

您可以创建PartialView,然后轻松地在PartialView的不同View的每个目标Controllers中调用(呈现)此PartialView

在另外ViewController的另一个 @Html.PartialView("~/views/Home/friends.cshtml", FriendModel); 内拨打Model

 @Html.PartialView("~/views/Home/friends.cshtml");

或者在不传递Html.RenderPartial("~/views/Home/friends.cshtml", FriendModel); 的情况下调用它:

PartialView

或使用:

PartialView

创建[WebMethod] public XmlDocument getXML() { XmlDocument xml = new XmlDocument(); xml.LoadXml("<xml msg='hello'/>"); return xml; }

enter image description here

要创建{{1}},您可以在google中搜索结果,或者阅读this article

答案 1 :(得分:0)

您可以在视图中使用Html.RenderAction用于您的目的

@Html.RenderAction("FriendsList","Home");

第一个参数是动作名称,第二个参数是控制器名称