将视图映射到控制器不工作
Map View to controller not working
我有以下 html 代码:
<li>@Html.ActionLink("Home", "Index", "HomeController")</li>
<li>@Html.ActionLink("About", "About", "HomeController")</li>
<li>@Html.ActionLink("Contact", "Contact", "HomeController")</li>
...
@RenderBody()
视图称为 Index.cshtml、About.cshtml 和 Contact.cshtml
Controller class' 相关方法如下所示:
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Contact me";
return View();
}
现在我的问题是当我点击 tabs/action 链接时没有任何反应。
我期待这样:<li>@Html.ActionLink("About", "About", "HomeController")</li>
表现得像正常的 <a href="...">...</a>
,并将我带到引用的视图。我是不是漏掉了什么?
我已经尝试在控制器中设置断点 class 以查看是否应该 return 调用视图的方法,但它们从未被触及
ASP.NET MVC 使用称为 Convention over Configuration 的原则,在大多数情况下可以简化开发。
在您的特定情况下,问题出在控制器的约定中。每当 MVC 找到一个应该指向控制器的 "magic string" 时,它会附加单词 'Controller' 并使用结果找到一个 class,继承自 Controller.
因此,例如:
一个link喜欢:
<li>@Html.ActionLink("Home", "Index", "HomeController")</li>
是对 MVC 的指令:
构建一个 hyperlink,文本为 "Home",指向从 Controller 继承的名为 'HomeControllerController' 的 class 中的 Action 'Index'。
如果您希望 link 指向名为 HomeController 的 Class,这是正确的 link:
<li>@Html.ActionLink("Home", "Index", "Home")</li>
这条指令告诉 MVC 在继承自 Controller 的名为 'HomeController' 的 Class 中找到 'Index' 动作。
我有以下 html 代码:
<li>@Html.ActionLink("Home", "Index", "HomeController")</li>
<li>@Html.ActionLink("About", "About", "HomeController")</li>
<li>@Html.ActionLink("Contact", "Contact", "HomeController")</li>
...
@RenderBody()
视图称为 Index.cshtml、About.cshtml 和 Contact.cshtml
Controller class' 相关方法如下所示:
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Contact me";
return View();
}
现在我的问题是当我点击 tabs/action 链接时没有任何反应。
我期待这样:<li>@Html.ActionLink("About", "About", "HomeController")</li>
表现得像正常的 <a href="...">...</a>
,并将我带到引用的视图。我是不是漏掉了什么?
我已经尝试在控制器中设置断点 class 以查看是否应该 return 调用视图的方法,但它们从未被触及
ASP.NET MVC 使用称为 Convention over Configuration 的原则,在大多数情况下可以简化开发。
在您的特定情况下,问题出在控制器的约定中。每当 MVC 找到一个应该指向控制器的 "magic string" 时,它会附加单词 'Controller' 并使用结果找到一个 class,继承自 Controller.
因此,例如:
一个link喜欢:
<li>@Html.ActionLink("Home", "Index", "HomeController")</li>
是对 MVC 的指令:
构建一个 hyperlink,文本为 "Home",指向从 Controller 继承的名为 'HomeControllerController' 的 class 中的 Action 'Index'。
如果您希望 link 指向名为 HomeController 的 Class,这是正确的 link:
<li>@Html.ActionLink("Home", "Index", "Home")</li>
这条指令告诉 MVC 在继承自 Controller 的名为 'HomeController' 的 Class 中找到 'Index' 动作。