带有破折号的剃刀文件名

时间:2013-03-28 13:31:04

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

我需要我的页面名称在名称中有一个破折号。 E.G我们的愿景

我是MVC& c#所以我可能会发生这一切。

这是我的控制器:

  public class HomeController : Controller
    {
        //
        // GET: /Home/
        public ActionResult Index()
        {
            return View();
        }
        //
        // GET: /our-vision/
        public ActionResult ourVision()
        {
            return View();
        }
    }

然后在我看来,我有Views / Home / ourVision.cshtml。

当我编译并转到http://localhost/ourVision时,它可以正常工作,但是当我转到http://localhost/our-vision时却没有。

这是我的路线:

  routes.MapRoute(
            "Default", // Route name
            "{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

2 个答案:

答案 0 :(得分:5)

为了达到这个目的,你需要做一些事情。

首先,要实现our-Vision,您需要为您的操作方法提供ActionName属性,如下所示:

[ActionName("our-Vision")]
public ActionResult ourVision()

接下来,您必须将ourVision.cshtml视图重命名为our-Vision.cshtml

最后,只要您使用Url.ActionActionLink,就需要使用our-Vision vision,就像这样:

Url.Action("our-Vision", "Home");

答案 1 :(得分:1)

IMHO

执行此操作的最佳方法是在路线引擎中定义新路线:

routes.MapRoute(
            "OurVision", // Route name
            "our-vision", // URL with parameters
            new { controller = "Home", action = "ourVision" } // Parameter defaults
        );