我刚刚开始使用/围绕MVC,但我仍然对定义每个视图的实际URL的位置感到困惑。到目前为止,我有2个控制器和2个视图。第一个控制器工作,并在URL http://localhost:60480/Example下创建正确的视图,但我甚至不确定它实际定义在示例页面上显示的视图的位置。如何定义第二页/视图的URL,以便“示例”上的超链接可以使用第二个控制器加载第二个视图?
基本上,我想在/ Example上创建一个超链接,它将带我到/ Example2或其他一些页面。任何有关MVC的建议/帮助将不胜感激!
谢谢,我知道我的术语可能有些偏差,所以不要害怕纠正我!
答案 0 :(得分:3)
您在1 => 3rd element from original tuple
2 => 1st element from original tuple
3 => 1st from original/3rd from original
4 => output of power function
中有一个名为RouteConfig.cs
的文件。这定义了url和controller / action之间的关系。
如果没有人改变这一点,它将如下所示:
App_Start
http://localhost/Example将匹配默认路由,将控制器设置为ExampleController。由于对URI没有任何操作,它将被设置为默认操作"索引"。
所以这将触及方法'索引'在控制器ExampleController.cs
要访问您的第二个控制器,只需将控制器名称(减去'控制器')放入网址:http://localhost/Example2将调用Index方法。要获得不同的方法/操作:http://localhost/Example2/ActionMethodOnController2
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
然后会为您提供与action / method同名的视图。可以以不同的方式命名视图,但不建议这样做。
在默认路由中,它将返回基于Index.cshtml的视图
我想创建一个超链接
您可以使用public class Example2Controller : Controller
{
public ActionResult ActionMethodOnController2()
{
...
return View();
为您构建链接,例如:
HtmlHelpers