我正在使用.NET Core MVC来防止用户通过在浏览器中手动输入URL来导航到操作。
在以前的MVC版本中,以下代码片段可以解决问题:
public ActionResult Index()
{
if(!ControllerContext.IsChildAction)
{
// redirect to different action
}
return View(viewModel);
}
Source (also similar question)
如何使用.NET Core MVC完成此操作?
答案 0 :(得分:3)
Goodbye Child Actions, Hello View Components:
子操作在ASP.NET Core MVC中不存在。相反,我们是 鼓励使用新的“视图组件”功能来支持此使用 情况。
答案 1 :(得分:3)
ASP.NET Core MVC中不存在子操作,如先前的答案所述。 视图组件功能就像子操作一样。在official documentation中指定为“功能强大”。
无法直接从浏览器访问视图组件。 据此,您无需控制请求是否来自url。
查看组件类的创建类型:
1)通过在类中添加ViewComponent后缀来创建:
public class SampleViewComponent
{
...
}
2)从ViewComponent派生创建
public class Sample : ViewComponent
{
...
}
3)使用ViewComponent属性创建
[ViewComponent]
public class Sample
{
...
}