【问题标题】:Server Error '\' in Application应用程序中的服务器错误“\”
【发布时间】:2014-10-01 07:02:39
【问题描述】:

我正在开发我的第一个 MVC 5 应用程序。不幸的是,我遇到了一个错误,在过去 4 小时内搜索了互联网后,无法弄清楚如何修复它。基本上我一直收到以下错误。

我了解错误的含义。但我的个人资料视图应该在管理视图下。基本上,当用户登录时,他们应该会看到一个显示查看我的个人资料的新链接。它的位置应该是 /Account/Profile 而不是 /Home/Profile。

我是否需要在应用程序路由中更改这一点,还是应该在 HomeController 中删除对此视图的引用并将其移至 AccountController?

提前感谢您的帮助。

【问题讨论】:

  • 你能告诉我们view my profile链接的代码和它的关联控制器吗?

标签: asp.net razor asp.net-mvc-5


【解决方案1】:

生成视图的控制器并不限制您只能使用该控制器,您的链接可以指向任何控制器。因此,在您的视图中,当您呈现到 Profile 视图的链接时,您应该指定控制器名称。

在以下示例中,我使用了 ActionLink 的重载,它允许我指定包含操作(即配置文件)的控制器(即帐户)。

Html.ActionLink( "View My Profile", "Profile", "Account" )

【讨论】:

  • 这正是我需要做的。重载 ActionLink 助手就可以了。谢谢大佬。
【解决方案2】:

默认情况下,ASP.NET MVC 首先检查 \Views\[ControllerDirectory]\ 中的相应视图,但之后,如果找不到匹配项,则会在 \Views\Shared 文件夹中查找。

在共享目录中有一个视图,您可以在多个控制器之间共享视图。您可以将您的Profile 视图添加到Shared 子目录中,您应该没问题。如果您仍然希望在 Account 控制器下拥有 Profile 视图并希望从其他控制器的操作中引用,请更改您的 return 语句以指定视图的位置,如下所示。

public ActionResult ProfileAction()
{
    return View("../Account/Profile");
}

【讨论】:

    猜你喜欢
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多