我需要页面名称中的破折号。我们的愿景

我是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
        );

最佳答案

为此,您需要做一些事情。

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

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


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

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

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

关于c# - 带有破折号的Razor文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15683233/

10-10 00:58