我正在使用Sitecore MVC控制器。我创建了一个控制器“EventController”,它有两个动作“AllEvents”和[HttpPost]“SelectedYear”,一个视图“\ Views \ Event \ AllEvents.cshtml”
“AllEvents”附加Sitecore控制器渲染当我从内容项页面发布预览时正在加载数据并且没有问题。 “所有活动”页面都有一个下拉列表 当我点击选定的年份时,回复正在进行,但视图未按要求加载并且也丢失了RenderingContext。该网址将会点击http://testPage/api/Event/SelectedYear并且图片和css没有加载,但数据就在那里。
下面我分享了示例代码。
请帮我解决问题。
AllEvents.cshtml
<div>
@using (Html.BeginForm("SelectedYear", "Event", FormMethod.Post, new { id = "TheForm"}))
{
@Html.DropDownListFor(model => model.SelectedYear, Model.mapLocationItemTypes, "-- Select Status --", new { id = "CategoryID" })
}
</div>
SelectedYear Action
[HttpPost]
public ActionResult SelectedYear()
return View(eventCalender);
<script type="text/javascript">
$(function () {
alert("HSecond")
$("#CategoryID").change(function () {
$('#TheForm').submit();
});
});
</script>
RouteConfig
routes.MapRoute(
name: "Default",
url: "api/{controller}/{action}/{id}",
defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }
答案 0 :(得分:0)
在Html.BeginForm()
中指定控制器和要发布的操作。但实际上,您希望发布到同一个Url,加载相同的项目并调用[HttpPost]
操作。 ASP.net MVC和Sitecore MVC之间略有不同。我写了一篇关于如何使用Sitecore MVC处理表单帖子的博客文章:
http://ctor.io/posting-forms-in-sitecore-controller-renderings-another-perspective/
此外,我今年在SUGCON上有一个关于Sitecore MVC的演讲,其中发布表格是一个主题。您可能还想查看slides或screencast