共享部分视图ActionResult问题

时间:2011-08-25 21:20:07

标签: asp.net-mvc partial-views

当我从Partial View中调用ActionResult时,我正在尝试返回父View。如果我知道父视图我只能输入返回视图(“索引”);但我不能,因为它们可能是多个父视图,因为这个部分视图是共享的......所以我该如何返回正确的父视图在ActionResult?

这看起来很简单,但它让我难过......

更新。这是部分视图:

@model Website.Models.PostModel

@using (Html.BeginForm("SubmitPost", "Home", FormMethod.Post))
{
@Html.TextAreaFor(m => m.Message, 2, 50, null)
<br /><br />
<div class="ui-widget">
    Notes: @Html.TextBox("Notes", "", new { @class = "ui-autocomplete-input" })
</div>
<br />
<p>
    <input type="submit" value="Post" />
</p>

}

1 个答案:

答案 0 :(得分:4)

我假设您在视图中使用@{Html.RenderAction("Action");}来调用

[ChildActionOnly]
public ActionResult Action()
{
    var model = context.Data.Where(x => x);

    return PartialView("PartialView", model);
}

如果是这样,那么你也可以指定你的routeValues。 在您的视图中,您可以致电

@{Html.RenderAction("Action", new {viewName = "parentView"});}

并在你的控制器中:

[ChildActionOnly]
public ActionResult Action(string viewName)
{
    var model = context.Data.Where(x => x);

    if (model == null) return View(viewName);

    return PartialView("PartialView", model);
}