我正在开发一个网站,该网站具有渲染部分视图的操作的路由。许多局部视图都是组件,它们共同构成了一个完整的页面。
例如,我正在处理的搜索页面有一个文本框、一个选项卡列表和一个表格。
其中每一个都可以通过类似于以下的 URL 进行访问
/Search/SearchPanel
/Search/Tabs/{SearchTerm}
/Search/ResultsTable/SearchTerm?tab=[currently selected tab]
这些都是通过我的索引页面上的 RenderPartial 呈现的。
当页面加载时,它将按照我想要的方式显示每个组件。但目前没有什么可以阻止用户直接访问该网址
/Search/Tabs
仅呈现选项卡控件,该选项卡控件在页面上其余元素的上下文之外毫无意义。
我有办法阻止这种情况吗?
您是否尝试过将您的控制器方法标记为private
?
private PartialViewResult MyPartialResultMethod()
这应该允许您从代码中调用它来构建您的页面并禁止任何公共访问(例如通过 URl)。
我现在正在测试这个,以确保我的答案是正确的,所以我会在测试时更新。
在选项卡示例中,您可以通过使用私有选项卡的第二个控制器方法来简单地限制访问。
所以你会得到看起来像这样的东西:
public ActionResult Tabs(string searchTerm) // When a search term is passed.
and
private ActionResult Tabs() // When no search term is passed.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)