如何编写要调用的局部视图动作的动作

时间:2014-03-26 09:10:25

标签: asp.net-mvc linq entity-framework

My Parent Action我想渲染多个部分视图......

public ActionResult DashBoard()
{
    AttendanceController ac = new AttendanceController();
    ac.MyInformation();
    return View();
}

child我想在DashBoard中制作局部视图的动作......

public ActionResult MyInformation()
{
    string currentUserId = User.Identity.GetUserId();

    var us = from u in db.Users
             join s in db.Designations
             on new { id = u.DesignationID } equals new { id = s.DesignationID }
             where u.Id == currentUserId

             select new ViewEmployees
             {

                 EmployeeCode = u.UserName,
                 EmployeeName = u.Name,
                 Father_Name = u.Father_Name,
                 DesignationName = s.DesignationName,
                 EmployeeType = u.EmployeeType,
                 Email = u.Email,
                 Mobile = u.Mobile

             };

    return PartialView("_MyInfo", us);
}

如何将MyInformation(部分视图)添加到DashBoard

4 个答案:

答案 0 :(得分:2)

您可以使用Html.Action帮助器。您的父控制器操作应该只呈现视图:

public ActionResult DashBoard()
{
    return View();
}

并在此视图中:

@Html.Action("MyInformation", "Attendance")

您可以在这篇文章中阅读更多关于儿童行为以及Html.Action和Html.Partial助手之间的区别:http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx/

答案 1 :(得分:0)

将您的信息中心操作更改为:

public ActionResult DashBoard()
{
    return View();
}

在您的主视图(在您的情况下是仪表板视图)中使用以下内容:

<div id="myPartialView">
   @Html.Action("MyInformation", "ControllerName")
</div>

因此,将对MyInformation操作进行调用,该操作返回的视图将显示在指定位置。

答案 2 :(得分:0)

在父视图中使用RenderAction。如果您想要作为子视图,请按照Darin的定义使用

@{Html.RenderAction("MyInformation", "Attendance");}

答案 3 :(得分:0)

您可以使用Html.Action助手。您的父控制器操作应该只呈现视图:

public ActionResult DashBoard()
{
    return View();
}

并在此视图中:

@Html.Action("MyInformation", "Attendance")