有没有办法在MVC中完全隐藏控制器和动作名称。 (例如)localhost:81即使单击控制器中的任何操作也应始终保持相同。 即localhost:81 / Controller / Action不应该发生。
答案 0 :(得分:1)
对于它的价值,您不必在URL中使用控制器和操作名称。这只是默认值。您始终可以定义自己的自定义路由,并使您想要的任何URL达到您想要的任何控制器操作。如果您使用属性路由(在MVC5中可用)或通过Nuget包(AttributeRouting)在较小版本中使用,则更加容易。这允许您在操作定义上明确地自定义每个操作的URL,操作定义也可以是您想要的任何URL。
但是,如果您真的希望将您的域名作为唯一的URL期限,那么@HadiHassan在建议SPA(单页面应用程序)架构时是正确的。有很多方法可以解决这个问题,因此您需要进行一些研究,以确定哪种工具最符合您的需求。有一次在Visual Studio中有一个SPA应用程序的项目模板,它莫名其妙地消失了一段时间,我相信它现在已经在Visual Studio的最新Web工具中返回了。但是,从头开始并不难。
您很可能需要两个项目,即Web API和基本网站项目。 Web API将提供您的后端连接,并且您最终将连接到数据库,例如Breeze,以便在客户端(您的网站项目)提供连接。这里有其他选择,因为您也可以轻松选择像Node.js这样的后端,然后根本不需要ASP.NET。
由于SPA几乎将整个应用程序移动到客户端,因此您需要依赖强大的全栈JS库。 Angular.js是一个受欢迎的选择,并且支持从服务器端MVC应用程序中丢失的所有控制器,路由等内容。