0

我正在研究 Sitecore MVC 控制器。我创建了一个控制器“EventController”,它有两个动作“AllEvents”和[HttpPost]“SelectedYear”,一个视图“\Views\Event\AllEvents.cshtml”</p>

当我从内容项页面发布预览时,“AllEvents”附加了 Sitecore 控制器渲染,正在加载数据并且没有问题。“所有事件”页面有一个下拉菜单当我单击选定的年份时,回帖正在执行,但视图未按要求加载并且也丢失了 RenderingContext。该 url 将点击http://testPage/api/Event/SelectedYear 并且图像和 css 没有加载但数据在那里。

下面我分享了示例代码。

请帮我解决问题。

所有事件.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 行动

[HttpPost]
public ActionResult SelectedYear()
return View(eventCalender);

<script type="text/javascript">
        $(function () {
            alert("HSecond")
            $("#CategoryID").change(function () {
                $('#TheForm').submit();
            });
        });

</script>

路由配置

routes.MapRoute(
               name: "Default",
               url: "api/{controller}/{action}/{id}",
               defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }
4

1 回答 1

0

在您的Html.BeginForm()指定控制器和要发布到的操作。但实际上,您想发布到同一个 Url,加载同一个 Item 并调用[HttpPost]action。这在 ASP.net MVC 和 Sitecore MVC 之间有点不同。我写了一篇关于如何使用 Sitecore MVC 处理表单帖子的博文:

http://ctor.io/posting-forms-in-sitecore-controller-renderings-another-perspective/

此外,我在今年的 SUGCON 上做了一个关于 Sitecore MVC 的演示,其中发布表单是一个主题。您可能还想查看幻灯片截屏视频

于 2015-07-16T09:45:54.667 回答