如何为详细信息视图创建控制器操作

时间:2017-09-11 17:46:48

标签: sitefinity sitefinity-10

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

我找到了this documentation,但我无法做出正面或反面 - 也许是针对不同的版本。我终于发现UrlkeyPrefix深埋在新闻窗口小部件选项中,但是按照文档的说明添加了"!content"在我的详细信息页面URL(我无法发生)中间,仍然没有显示我的自定义小部件。

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

我在文档中得到了一些工作的例子,除了这个非常烦人的内容"在我的网址中

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

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

导航到网址sans"!content"只显示列表页面。

1 个答案:

答案 0 :(得分:2)

MVC的本质是你一次只能调用一个动作。

假设您正在调用NewsController上的Details操作,您放在页面上的其他窗口小部件将无法理解如何响应Details操作,除非您执行一个事情:

  1. 在您自己的控制器中创建相应的详细信息操作或
  2. 覆盖HandleUnknownAction以处理在调用另一个窗口小部件的方法时您想要发生的事情。 (更好,因为它减少了歧义)
  3. 如果要在“新闻”上调用“详细信息”操作时在自定义窗口小部件上调用“索引”操作:

        protected override void HandleUnknownAction(string actionName)
        {
            this.ActionInvoker.InvokeAction(this.ControllerContext, "Index");
        }