0

继承了一个 Sitefinity 站点。需要为新闻页面上的详细信息视图添加 MVC 小部件。

我找到了这个文档,但我无法对它做出正面或反面——也许它是针对不同版本的。我终于找到了UrlkeyPrefix隐藏在新闻小部件选项中的内容,但是按照文档的说明在我的详细信息页面 URL 中间添加了“!内容”(我不可能发生这种情况)并且仍然没有显示我的自定义小部件。

有谁知道如何正确配置控制器以使小部件显示在详细信息页面上?


我有点让文档中的示例正常工作,只是我的 URL 中仍然有这个非常烦人的“!内容”

https://mysite/news/!content/2017/08/24/my-article-title

 [ActionName("!content")]
 public ActionResult Filter()
 {
     return View("index", InitializeModel());
 }

导航到没有“!内容”的 URL 只显示列表页面。

4

1 回答 1

2

MVC 的本质是,您一次只能调用一个操作。

假设您在 NewsController 上调用 Details 操作,您放置在页面上的另一个小部件将不了解如何响应 Details 操作,除非您执行以下两项操作之一:

  1. 在您自己的控制器中创建相应的详细信息操作或
  2. 重写 HandleUnknownAction 以处理您希望在调用另一个小部件的方法时发生的事情。(更好,因为它减少了歧义)

如果您想在 News 上调用 Details 操作时在自定义小部件上调用 Index 操作:

    protected override void HandleUnknownAction(string actionName)
    {
        this.ActionInvoker.InvokeAction(this.ControllerContext, "Index");
    }
于 2017-09-12T03:27:51.093 回答