0

私はこれらの2つのルートを持っています:

routes.MapRoute("Agenda", ConfigurationManager.AppSettings["eventsUrl"] + "/{year}/{month}", MVC.Events.Index(), new { year = DateTime.Now.Year, month = DateTime.Now.Month });
routes.MapRoute("AgendaDetail", ConfigurationManager.AppSettings["eventsUrl"] + "/{year}/{month}/{day}", MVC.Events.Detail(), new { year = DateTime.Now.Year, month = DateTime.Now.Month, day = DateTime.Now.Day });

そしてそれはこのコードで完全に動作します:

<a href="<%= Url.Action(MVC.Events.Detail(Model.EventsModel.PreviousDay.Year, Model.EventsModel.PreviousDay.Month, Model.EventsModel.PreviousDay.Day))%>" title="<%= Model.EventsModel.PreviousDay.ToShortDateString() %>"><img src="<%= Links.Content.images.contenu.calendrier.grand.mois_precedent_png %>" alt="événement précédent" /></a>

今日へのリンクを取得する場合を除いて、今日の場合、ilはwww.myurl.com/agendaのみを指します。魔女は、CnfigurationManager.AppSettings["eventsUrl"]の値です。私は何が間違っているのですか?それは今日のようです、それはデフォルトの議題にbakを指します...

助けてくれてありがとう!

4

2 に答える 2

1

実際には、ルートとUrl.Action()通話の両方が期待どおりに機能しています。ルートデータがデフォルトのデータと同じ場合、URLから省略されます。また、DateTime.Now.Dayデフォルト値としてetcを指定しているため、今日のアジェンダにリンクする場合、日付値は含まれません。

ただし、これでも希望どおりに動作します。今日の議事録へのリンクをクリックすると、実際には、URLだけでなく今日の議事録が表示されます。

于 2010-04-15T20:44:12.680 に答える
0

調査すべきことの1つは、これらのデフォルト値が問題の原因であるため、これらすべてのデフォルト値をルートに含める必要があるかどうかです。たとえば、2番目のルートから'day = DateTime.Now.Day'のデフォルト値を削除するとどうなりますか?

あなたはあなたのURLに何をさせたいかを決める必要があります、例えば

www.myurl.com/agenda/2010/04

2010年4月の議事を表示しますか、それとも今日の議事詳細を表示しますか?

于 2010-04-15T23:56:06.673 に答える