我正在使用.NET Core MVC来防止用户通过手动将URL输入浏览器来导航到某个操作. 在以前的MVC版本中,以下代码片段可以解决这个问题: public ActionResult Index(){ if(!ControllerContext.IsChildAction) {
在以前的MVC版本中,以下代码片段可以解决这个问题:
public ActionResult Index() { if(!ControllerContext.IsChildAction) { // redirect to different action } return View(viewModel); }
Source (also similar question)
我怎样才能使用.NET Core MVC实现这一目标?
如前面的答案中所述,ASP.NET Core MVC中不存在子操作.查看组件功能就像子操作一样.在 official documentation中被称为“非常强大”.
无法直接从浏览器访问View组件.
根据这个,你不需要控制请求来自url与否.
查看组件类创建类型:
1)通过向类添加ViewComponent后缀进行创建:
public class SampleViewComponent { ... }
2)使用ViewComponent派生创建:
public class Sample : ViewComponent { ... }
3)使用ViewComponent属性创建
[ViewComponent] public class Sample { ... }