C# 如何在MVC4Razor中从共享视图访问控制器操作?

C# 如何在MVC4Razor中从共享视图访问控制器操作?,c#,asp.net-mvc,razor,asp.net-mvc-4,C#,Asp.net Mvc,Razor,Asp.net Mvc 4,我已经创建了一个视图索引&在该视图上我已经在该视图上放置了一个共享视图,但现在我必须从该共享视图调用控制器操作(_TraningList) 这是索引视图 为此,我必须做以下事情 @Html.Partial("~/Views/Shared/_TrainingList.cshtml", Model.First().Categories) @Html.Partial("_ConsultingList") @Html.Partial("_UpcomingWebinarList") 这是共同的观点

我已经创建了一个视图索引&在该视图上我已经在该视图上放置了一个共享视图,但现在我必须从该共享视图调用控制器操作(_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>
@model IEnumerable
@*@行动(“索引”、“培训”)*@
培训计划
@*
  • 航空航天
  • 敏捷的
  • APICS/SME认证
  • ASQ认证
  • FDA相关
  • 人力资源相关
  • ISO相关
  • IT认证
  • 精益六西格玛
  • PMI认证
*@ @foreach(模型中的QPS_MVC.BusinessLogic.CourseCategories项) {
  • @ActionLink(item.Name,“,”Trainings“,新建{SelectedId=item.CategoryID},null)
}

这是控制器

 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);
    }
public ActionResult Index()
{
List obj=新列表();
if(Request.QueryString.Count>0&&Request.QueryString[“SelectedId”]!=null&&!string.IsNullOrEmpty(Request.QueryString[“SelectedId”].ToString())
{
obj=newCourseSApp().getAllCoursesById(int.Parse(Request.QueryString[“SelectedId”].ToString());
}
其他的
{
obj=新课程App().getAllCourses();
obj=新课程app().getAllCoursesById(obj.First().Categories.First().CategoryID);
}
//if(ViewData[“CategoryId”]==null | | string.IsNullOrEmpty(ViewData[“CategoryId”].ToString())
//{
//obj=新课程App().getAllCourses();
//obj=新课程app().getAllCoursesById(obj.First().Categories.First().CategoryID);
//}
//否则
//{
//obj=newCourseSApp().getAllCoursesById(int.Parse(ViewData[“CategoryId]”.ToString());
//}
返回视图(obj);
}
所以基本上我想从共享视图_trainingList调用这个索引操作 我已经做了以上的事情,但我不能成功,所以请任何人帮助我

您可以使用

调用子操作方法并在父视图中内联呈现结果

您不应该真正调用在视图中不接受任何参数的其他方法。您可以将该
列表
放入模型中,然后将该索引视图中的逻辑放入共享视图中。
@{ Html.RenderAction("Action", "Controller"); }