3

ページ名にダッシュを含める必要があります。EG 私たちのビジョン

私は 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
        );
4

2 に答える 2

5

それを達成するには、いくつかのことを行う必要があります。

まず、 を実現するには、次のようにアクション メソッドに属性our-Visionを指定する必要があります。ActionName

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

次に、ourVision.cshtmlビューの名前を次のように変更する必要があります。our-Vision.cshtml

最後に、Url.Actionorを使用しているときはいつでも、次のようにand notActionLinkを使用する必要があります。our-Vision vision

Url.Action("our-Vision", "Home");
于 2013-03-28T13:36:32.960 に答える
1

私見では

これを行う最善の方法は、ルート エンジンで新しいルートを定義することです。

routes.MapRoute(
            "OurVision", // Route name
            "our-vision", // URL with parameters
            new { controller = "Home", action = "ourVision" } // Parameter defaults
        );
于 2013-03-28T13:44:07.220 に答える