如何重定向到ASP.NET MVC3中共享文件夹内创建的cshtml页面

时间:2011-09-21 13:28:44

标签: asp.net asp.net-mvc-3

请帮我解答如何重定向到共享文件夹中创建的.cshtml页面。

我想要这样的东西

href="@Url.Content("Shared/UnderConstruction")"

这里没有redirecting到我创建的UnderConstruction页面。

4 个答案:

答案 0 :(得分:4)

您无法重定向到~/Views文件夹中存储的任何内容,包括~/Views/Shared。 ASP.NET MVC根本不提供此文件夹,无法直接访问。另请注意,在ASP.NET MVC中,您不直接提供.cshtml页面。您总是通过返回视图的控制器操作,这些视图可能代表.cshtml页面。

现在,如果您在站点根~/Shared下直接有一个共享文件夹,那么您可以这样做:

<a href="@Url.Content("~/Shared/UnderConstruction")">construction</a>

答案 1 :(得分:1)

如果您想按照其他帖子在网址“共享/未完成”中显示网页:

  • 创建控制器SharedController。
  • 定义行动“UnderConstruction”
  • 在Views / Shared /文件夹中创建“UnderConstruction.cshtml”。
  • 如果您想要明确,请映射网址“Shared / {action}”,新{Controller =“Shared”}。

说实话......说实话,即使我不知道这是否有效,你将污染你的“共享”文件夹。您可以将现有的共享文件夹重命名为其他内容,也可以将ViewStart.cshtml修改为指向新文件夹。

答案 2 :(得分:1)

在ASP.NET MVC3中,您无法通过直接调用文件直接呈现视图。它们只能通过控制器提供。

要在共享文件夹中调用视图,您必须执行类似以下操作:

public class HomeController : Controller
{
    public ActionResult About()
    {
        return View("Construction");
    }
}

答案 3 :(得分:0)

在ASP.NET MVC中,您只能重定向到控制器,并且控制器返回视图。您可以按照名称在Shared中以与普通控制器视图相同的方式访问视图。在解析视图名称时,ASP.NET MVC首先在您的控制器视图文件夹中查找,然后在共享视图文件夹中查找。