我有一个ControllerRedering和一个显示新闻内容的视图,下面是一个部分视图,可以让用户添加新评论。
@using (Html.BeginRouteForm(Sitecore.Mvc.Configuration.MvcSettings.SitecoreRouteName, FormMethod.Post, new { @class = "form-inline", role = "form" }))
{
@Html.Sitecore().FormHandler("NewsContent","Index")
some controlls here...
<div class="form-group">
<input type="submit" value="Add" class="btn btn-default"/>
</div>
}
这是控制器内容:
public class NewsContentController : Controller
{
//shows news content
public ActionResult Index()
{
var model = Factory.Context.GetCurrentItem<INews>();
return View(model);
}
//saves comment
[HttpPost]
public ActionResult Index(Comment comment)
{
//get current item
var parent = Factory.Context.GetCurrentItem<INews>();
IComment _comment = new Comment
{
Description = comment.Description,
FullName = comment.FullName,
Name = DateTime.Now.ToString("yy-MM-ddThh-mm-ss")
};
var db = Factory.GetSitecoreService(Factory.SiteCoreDataBase.master);
using (new SecurityDisabler())
{
db.Create(parent, _comment);
}
ViewBag.Message = "Thanks for comment";
IView pageView = Sitecore.Mvc.Presentation.PageContext.Current.PageView;
if (pageView == null)
return new HttpNotFoundResult();
return (ActionResult) View(pageView);
}
}
点击“添加”按钮后,显示
渲染已经以递归方式嵌入其自身。嵌入跟踪:内容 - 控制器:新闻内容。行动:索引[内容 - 控制器:新闻内容。行动:指数 - {04234ec6-d54e-4eb7-81df-402493d29c4f}] - &gt;内容 - 控制器:新闻内容。行动:索引[内容 - 控制器:新闻内容。行动:索引 - {04234ec6-d54e-4eb7-81df-402493d29c4f}]
答案 0 :(得分:0)
如果布局详细信息或静态绑定导致子布局或渲染绑定到自身,Sitecore会抛出此错误,从而导致无限递归。
我可以在你的代码中看到 - 你的动作最终会自我递归。
IView pageView = Sitecore.Mvc.Presentation.PageContext.Current.PageView;
if (pageView == null)
return new HttpNotFoundResult();
return (ActionResult) View(pageView);
你可以做的只是return View("index");