2

1 つのビュー インデックスを作成し、そのビューに 1 つの共有ビューを配置しましたが、その共有ビュー (_TraningList) からコントローラー アクションを呼び出す必要があります。

これはインデックス ビューです

そのために私は次のことをしました

 @Html.Partial("~/Views/Shared/_TrainingList.cshtml", Model.First().Categories)
 @Html.Partial("_ConsultingList")
 @Html.Partial("_UpcomingWebinarList")

これは共有ビューです

@model IEnumerable<QPS_MVC.BusinessLogic.CourseCategories>
<!--Training Box-->
<div class="bodyContentWrp">
@*@Html.Action("Index", "Trainings")*@
<h1>
    Training Programs</h1>
@*  <ul class="arw1">
            <li>Aerospace</li>
            <li>Agile</li>
            <li>APICS/SME Certifications</li>
            <li>ASQ Certifications</li>
            <li>FDA Related</li>
            <li>HR Related</li>
            <li>ISO Related</li>
            <li>IT Certifications</li>
            <li>Lean Six Sigma</li>
            <li>PMI Certifications</li>
        </ul>
*@
@foreach (QPS_MVC.BusinessLogic.CourseCategories item in Model)
{
    <ul>
        <li>@Html.ActionLink(item.Name, "", "Trainings", new { SelectedId = item.CategoryID },   null)</li>
        <li></li>
    </ul>
}
<div class="clear">
</div>
<div class="readMore">
    <a href="#">Read More</a></div>
<div class="clear">
</div>

これはコントローラーです

 public ActionResult Index()
    {
        List<Courses> obj = new List<Courses>();

        if (Request.QueryString.Count > 0 && Request.QueryString["SelectedId"] != null && !string.IsNullOrEmpty(Request.QueryString["SelectedId"].ToString()))
        {

            obj = new CoursesApp().getAllCoursesById(int.Parse(Request.QueryString["SelectedId"].ToString()));

        }
        else
        {
            obj = new CoursesApp().getAllCourses();
            obj = new CoursesApp().getAllCoursesById(obj.First().Categories.First().CategoryID);
        }
        //if (ViewData["CategoryId"] == null || string.IsNullOrEmpty(ViewData["CategoryId"].ToString()))
        //{
        //    obj = new CoursesApp().getAllCourses();
        //    obj = new CoursesApp().getAllCoursesById(obj.First().Categories.First().CategoryID);
        //}
        //else
        //{
        //    obj = new CoursesApp().getAllCoursesById(int.Parse(ViewData["CategoryId"].ToString()));
        //}
        return View(obj);
    }

したがって、基本的には共有ビュー _trainingList からこのインデックス アクションを呼び出したいのですが、上記のことを実行しましたが、成功できないので、誰か助けてください。

4

1 に答える 1

3

使用できますRenderAction

子アクション メソッドを呼び出し、結果を親ビューにインラインでレンダリングします。

@{ Html.RenderAction("Action", "Controller"); }
于 2013-03-20T11:59:10.753 に答える