0

我正在尝试在我的 ASP.NET MVC C# 应用程序中设置一个简单的路由系统,但它不起作用:/

这是我的根目录“ http://localhost/Admin/ ”或“ http://localhost/Admin/Home.mvc/Index

我有一个 HomeController,它管理一个索引和一个起始页。

在“索引”页面中,我有一个可供选择的客户端列表(按钮或其他),我想在所选客户端的功能中转到“ http://localhost/StoreV3Admin/ {client}/Home.mvc/Start” .

我对此进行了一些研究,但我并不完全了解路由系统的工作原理。

首先,可以吗??

谢谢。

4

2 回答 2

2

我只是把一个简单的 mvc 应用程序放在一起,我能够让你描述的工作正常。

在我的 global.asax.cs 中,在 RegisterRoutes 方法中,我添加了以下路由:

routes.MapRoute(
    "Client",
    "{client}/{controller}/{action}/{id}",
    new { client = "Default", controller = "Home", action = "Index", id = "" }
    );

在我的控制器中,我声明了一个这样的方法:

public ActionResult FooBar(string client)
{
    return View();
}

在我看来,我建立这样的链接:

<p><%= Html.ActionLink("Client1", "FooBar", "Home", new { client = "Client1"}, null) %></p>
<p><%= Html.ActionLink("Client2", "FooBar", "Home", new { client = "Client2"}, null) %></p>
<p><%= Html.ActionLink("Client3", "FooBar", "Home", new { client = "Client3"}, null) %></p>

生成的标记最终看起来像这样:

<p><a href="/Client1/Home/FooBar">Client1</a></p>
    <p><a href="/Client2/Home/FooBar">Client2</a></p>
    <p><a href="/Client3/Home/FooBar">Client3</a></p>

我希望这有帮助。

于 2009-06-01T15:32:37.393 回答
0

我认为您的 MVC 应用程序必须驻留在应用程序根目录中才能正常运行。尝试在 IIS 中创建一个 VirtualDirectory,看看是否有帮助。

为什么你的路线中有一个“.mvc”?你不是说http://localhost/Admnin/Home/Index吗?

于 2009-06-01T15:26:30.277 回答