3

2 つのビューを持つ単純な ASP.NET MVC サイトがあるとします。ビューは次のルートを使用します: /Foo および /Foo/Bar。

ここで、URL を使用してサイトの背景色を (例として) 指定したいとします。たとえば、ルートを /Blue/Foo または /Green/Foo/Bar にしたいと考えています。

また、ビューから Html.ActionLink を呼び出す場合、渡さなくても Blue または Green の値を伝播させたいと考えています。たとえば、/ から Html.ActionLink("Bar", "Foo") を呼び出すとします。ブルー/フー、/ブルー/フー/バーに戻ってきてほしい。

どうすればこれを行うことができますか?

(既存の投稿がない場合はご容赦ください。これを簡潔に説明するのは難しいため、何を検索すればよいかわかりません。)

4

1 に答える 1

1

個人的には、これは本当に長期的に実装して維持するための「ハッキー」な方法だと思います。

代わりにURLパラメータを使用してみませんか?

例-具体的な実装は次のようになります。

public ActionResult BackGroundColorChangerAction(string color = "") { // <- Providing a default value if no value was defined
    ViewData["backgroundColor"] = color; // Or do some processing first

    return View();
}

次に、ビューに値を表示する必要があります。おかげViewDataで、正しいデータでビューを簡単にフィードできます。

...
<body>
    <div>
        <h2>Your Current Color: <b><%: ViewData["backgroundColor"] %></b></h2>

        <%: Html.ActionLink("Red", "BackGroundColorChangerAction", new { color = "red" }) %><br />
        <%: Html.ActionLink("Green", "BackGroundColorChangerAction", new { color = "green" }) %><br />
        <%: Html.ActionLink("Blue", "BackGroundColorChangerAction", new { color = "blue" }) %><br />
    </div>
</body>
...

これで、受け取ったViewData["backgroundColor"]値を使用してすべてを実行できます。JavaScriptを使用して接続すると、html要素の色を簡単に切り替えることができます。

Enumリンクの固定文字列値とオプションのパラメータを使用して実行しましたが、このデータを含むまたはデータベーステーブルを簡単に設定できます。

于 2010-05-25T22:35:30.107 に答える