1

ASP.NET 4.5 WebForms で FriendlyUrls を使用して簡単なテストを行っています。Foo.aspx は /Foo/ になります (動作します)。FriendlyUrlSegments 属性を使用して URL から ID をコントロールに取得しようとすると、次のエラーが発生します。

'Microsoft.AspNet.FriendlyUrls.ModelBinding.FriendlyUrlSegmentsAttribute' does not contain a constructor that takes 0 arguments

[FriendlyUrlSegments] エラーのあるメソッド:

public Person GetPerson([FriendlyUrlSegments]int? id)
{
    return People.Find(p => p.Id == id);
}

NuGet から FriendlyUrls を更新しようとしました。

4

2 に答える 2

2

次のようにメソッドを記述します。

public Person GetPerson([FriendlyUrlSegments(0)] int? id)
{
    return People.Find(p => p.Id == id);
}

この[FriendlyUrlSegments]属性は、URLのページの後のセグメントのゼロインデックスマップを使用します。たとえば、/ Hello / foo / bar / ...をリクエストし、ページがHello.aspxの場合、[FriendlyUrlSegments(0)]「foo」に[FriendlyUrlSegments(1)]マップされ、「bar」にマップされます。

于 2013-03-22T18:27:16.813 に答える