如何为详细信息视图创建控制器操作
How to create controller action for details view
继承了 Sitefinity 网站。需要为新闻页面上的详细信息视图添加一个 MVC 小部件。
我找到了 this documentation,但我无法确定它的正反面 - 可能是针对不同的版本。我终于找到了隐藏在新闻小部件选项中的 UrlkeyPrefix
,但按照文档的说明在我的详细信息页面 URL 的中间添加了“!内容”(我不可能发生)仍然没有显示我的自定义小部件。
有谁知道如何正确配置控制器以使小部件显示在详细信息页面上?
我的文档中的示例可以正常工作,除了我的 URL 仍然
中有这个非常烦人的“!content”
https://mysite/news/!content/2017/08/24/my-article-title
[ActionName("!content")]
public ActionResult Filter()
{
return View("index", InitializeModel());
}
导航到没有“!content”的 URL 只会显示列表页面。
MVC 的本质是您一次只能调用一个操作。
假设您在 NewsController 上调用 Details 操作,您放置在页面上的其他小部件将无法理解如何响应 Details 操作,除非您执行 one 两件事:
- 在您自己的控制器中创建相应的详细信息操作或
- 重写 HandleUnknownAction 以处理您希望在调用另一个小部件的方法时发生的事情。 (更好,因为它减少了歧义)
如果您想在对新闻调用详细信息操作时对自定义小部件调用索引操作:
protected override void HandleUnknownAction(string actionName)
{
this.ActionInvoker.InvokeAction(this.ControllerContext, "Index");
}
继承了 Sitefinity 网站。需要为新闻页面上的详细信息视图添加一个 MVC 小部件。
我找到了 this documentation,但我无法确定它的正反面 - 可能是针对不同的版本。我终于找到了隐藏在新闻小部件选项中的 UrlkeyPrefix
,但按照文档的说明在我的详细信息页面 URL 的中间添加了“!内容”(我不可能发生)仍然没有显示我的自定义小部件。
有谁知道如何正确配置控制器以使小部件显示在详细信息页面上?
我的文档中的示例可以正常工作,除了我的 URL 仍然
中有这个非常烦人的“!content”https://mysite/news/!content/2017/08/24/my-article-title
[ActionName("!content")]
public ActionResult Filter()
{
return View("index", InitializeModel());
}
导航到没有“!content”的 URL 只会显示列表页面。
MVC 的本质是您一次只能调用一个操作。
假设您在 NewsController 上调用 Details 操作,您放置在页面上的其他小部件将无法理解如何响应 Details 操作,除非您执行 one 两件事:
- 在您自己的控制器中创建相应的详细信息操作或
- 重写 HandleUnknownAction 以处理您希望在调用另一个小部件的方法时发生的事情。 (更好,因为它减少了歧义)
如果您想在对新闻调用详细信息操作时对自定义小部件调用索引操作:
protected override void HandleUnknownAction(string actionName)
{
this.ActionInvoker.InvokeAction(this.ControllerContext, "Index");
}