ASP.Net MVC有一个Action渲染另一个Action

时间:2009-03-25 17:12:39

标签: asp.net-mvc

我有两个页面需要,并希望显示url / index和/ review。两个页面之间的唯一区别在于评论我将有一个评论评论部分来显示和提交按钮。否则两页是相同的。我以为我可以为主要内容创建一个用户控件。

但是,如果我可以在“审核”操作下说明,则显示审核内容,并返回其余的索引操作。

你(通用你)怎么做?

3 个答案:

答案 0 :(得分:6)

模型示例

public class MyModel
{
  public bool ShowCommentsSection { get; set; }
}

控制器操作

public ActionResult Index()
{
  var myModel = new MyModel();

  //Note: ShowCommentsSection (and the bool type) is false by default.

  return View(myModel);
}

public ActionResult Review()
{
  var myModel = new MyModel
  {
    ShowCommentsSection = true
  };

  //Note that we are telling the view engine to return the Index view
  return View("Index", myModel);
}

查看(可能在您的index.aspx内部某处)

<% if(Model.ShowCommentsSection) { %>
  <% Html.RenderPartial("Reviews/ReviewPartial", Model); %>
<% } %>

或者,如果Razor是你的一杯茶:

@if(Model.ShowCommentsSection) {
  Html.RenderPartial("Reviews/ReviewPartial", Model);
}

答案 1 :(得分:4)

// ... Make comment section visible
return Index();

答案 2 :(得分:0)

为什么不总是包含评论评论表单并使用客户端代码来显示或隐藏它。考虑到评论页面不需要额外的数据,超出索引已经需要的数据,不需要往返控制器。这样您就可以删除评论操作和视图。