0

次のコントローラー アクションがあります。

public class Foo
{
    public ActionResult Bar(int? barId)
    {
        ...
    }
}

このアクションに対応するルートは次のようになります。

routes.MapRoute("Foobar", "bar/{barId}",
                new { controller = "Foo", action = "Bar", barId = UrlParameter.Optional },
                new { barId = @"^[0-9]+$" });

私の見解では、ルートを次のように生成しています。

@Url.Action("Bar", "Foo", new { barId = bar.BarId })

についてbar.BarId = 32、期待される URL を受け取ります/Foo/32

nullしかし、値のルートも次のように生成したいと思います。

@Url.Action("Bar", "Foo", new { barId = (int?)null })

ただし、これについては、のURLを受け取ります/Foo?barId=currentBarId

現在表示しているページのはどこcurrentBarIdにありますか。barIdBar

私は何を間違っていますか?

4

1 に答える 1

1

制約を次のように変更します。

new { barId = @"^[0-9]*$" }

barIdこれにより、このルートを空にすることができます。

于 2013-03-29T15:35:21.223 に答える