MVC3 - 为什么渲染部分时控制器中的GET方法不会被调用?

时间:2012-03-25 19:41:55

标签: asp.net-mvc-3 controller get partial-views

我在Views / Home中创建了一个局部视图abc

将此添加到我的控制器

[HttpGet]
public ActionResult abc()
{
return View();
}

我将这个局部视图称为

@Html.Partial("~/Views/Home/abc.cshtml")

我能够看到局部视图但是控制器方法没有被调用。如何渲染局部视图并调用控制器get方法?

2 个答案:

答案 0 :(得分:4)

我认为您正在寻找Html.Action方法(在MSDN上):

查看:

@Html.Action("abc", "Home")

控制器:

[HttpGet]
public ActionResult abc()
{
    return PartialView();
}

答案 1 :(得分:3)

控制器呈现视图。你清楚地有一个控制器正在渲染你的父视图(其中包含@Html.Partial的视图。部分简单地将局部视图与当前视图合并,因此不会访问其他控制器。

想一想。你实际上并没有指定一个动作,现在好吗?你只是指定一个视图。视图无法自行呈现。

你想要的是@Html.Action(),它是根据控制器动作呈现的。