带有破折号的剃刀文件名

Cha*_*ynn 3 c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

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

我是MVC&c#的新手,所以我可能会遇到这一切.

这是我的控制器:

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

然后在我的观点中,我有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
        );
Run Code Online (Sandbox Code Playgroud)

mat*_*mmo 5

你需要做一些事情才能实现这一目标.

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

[ActionName("our-Vision")]
public ActionResult ourVision()
Run Code Online (Sandbox Code Playgroud)

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

最后,无论何时使用Url.ActionActionLink,您需要使用our-Vision不是 vision,如下:

Url.Action("our-Vision", "Home");
Run Code Online (Sandbox Code Playgroud)