0

私はmvcを学ぼうとしています。インデックス ページに 2 つのリンクがあるとします。最初のリンクをクリックすると、MyPageOneController が呼び出され、MyPageOne ビューが表示されます。

同じように、2 番目のリンクをクリックすると、MyPageTwoController が呼び出され、MyPagetwo ビューが表示されます。

私はそれをやろうとしますが、エラーが発生します。ここで、コントローラーとビューのフォルダー構造の写真を提供しています。見てください。

ここに画像の説明を入力

ホームフォルダーにある MyPageOne というビューと、test という別のフォルダーにある別のビューがあります。

ここで私は私の完全なコードを与えています

Index.cshtml コード

@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.Message</h2>
<p>
    @Html.ActionLink("Click on link one", "MyPageOne", "MyPageOne")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    @Html.ActionLink("Click on link two", "MyPageTwo", "MyPageTwo")
</p>

MyPageOne.cshtml コード

@{
    ViewBag.Title = "MyPageOne";
}

<h2>Welcome to MyPageOne !</h2>

MyPageTwo.cshtml

@{
    ViewBag.Title = "MyPageTwo.cshtml";
}

<h2>Welcome to MyPageTwo !</h2>

MyPageOneController.cs と MyPageTwoController.cs という 2 つの controllder を作成しました。

MyPageOneController.cs のコード

namespace MvcApplication4.Controllers
{
    public class MyPageOneController : Controller
    {
        //
        // GET: /MyPageOne/

        public ActionResult MyPageOne()
        {
            return View();
        }

    }
}

MyPageTwoController.cs のコード

namespace MvcApplication4.Controllers
{
    public class MyPageTwoController : Controller
    {
        //
        // GET: /MyPageTwo/

        public ActionResult MyPageTwo()
        {
            return View();
        }

    }
}

何が間違っているのか教えてください。最初のリンクをクリックすると、正しいコントローラーメソッドが呼び出されますが、ビューがレンダリングされないことを確認します。私が間違えているところ。私が作成し、2 つの異なるフォルダーに保存されている 2 つのビューを読み込むために、コードで何を変更する必要があるか教えてください。ありがとう

私は解決策を得ました

public ActionResult MyPageOne()
        {
            return View("../Home/MyPageOne");
        }

 public ActionResult MyPageTwo()
        {
            //return View();
            return View("../Test/MyPageTwo");
        }

このようにして、ビューにリダイレクトしてジョブを完了します。ビューフォルダーの下にあるものをプログラムで指定する方法を教えてください。コードを使用しました return View("~/Home/MyPageOne");が、機能しませんでした。ルート ビュー フォルダ パスを指定する方法は??

ありがとう

4

3 に答える 3