我需要我的页面名称在名称中有一个破折号。 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
);
答案 0 :(得分:5)
为了达到这个目的,你需要做一些事情。
首先,要实现our-Vision
,您需要为您的操作方法提供ActionName
属性,如下所示:
[ActionName("our-Vision")]
public ActionResult ourVision()
接下来,您必须将ourVision.cshtml
视图重命名为our-Vision.cshtml
最后,只要您使用Url.Action
或ActionLink
,就需要使用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
);