2012-02-09 10 views
0

セグメントはwww.example.com/Store*セグメントでHtml.ActionLinkを作成しようとしています/セグメント1 /セグメント2 /セグメント3 *。セグメントはオプションです。MVC3:コントローラとパラメータのみのURL(アクションなし)

IVEは、次のルートを定義した:

routes.MapRoute("Store", 
"{controller}/{Segment1}/{Segment2}/{Segment3}", 
new 
{ 
controller = "Store", 
action = "Show", 
segment1 = UrlParameter.Optional, 
segment2 = UrlParameter.Optional, 
segment3 = UrlParameter.Optional 
} 
); 

アクションは、URLで見られるべきではありません。私は有効なリンクを作成することができないようです。次のように私はリンクを生成ビューで

<ul> 
@foreach (KeyValuePair<string, string> item in ViewBag.LinkList){<li>@Html.ActionLink(item.Key, "Show", "Store", new { item.Value })</li>} 
</ul> 

私はadressbarすべてにURLを入力する(アクションパラメータとして、セグメントを読むことができます)うまく行くが、私は、HTMLを取得するカント。 ActionLinkが正しい。 誰も私にこのルートのための働くActionLinkの例を教えてくれますか?ありがとう!

答えて

0

segment2のデフォルトを2回定義しましたが、ActionLinkコールでセグメント変数を定義していないため、全体が壊れていることを忘れてしまいました(segment3)。

+0

ありがとう、それを編集しました。それは投稿の誤字ですが、私のコードのルートはそれを持っていませんでした:) – stefjnl

+0

ああ、ありがとう。 '@Html.ActionLink(item.Key、" Show "、" Store "、新しい{item.Value})'この行も間違っているようですが、 'new {item.Value}'は有効な式ではありません。 –

+0

私は、 〜/ Store/segment1 /のようなものを生成するアクションリンクを作成する必要があることを知っています。 item.Keyはurlnameであり、item.Valueはパラメータ – stefjnl

関連する問題