2

こんにちは私はmvc2の学習を始めたばかりで、パラメータページのデフォルト値に問題があります(以下の方法を参照してください)。

URLに何を入力しても、常に0です。たとえばこれ

h.ttp:// localhost:52634 / Products / List / 2

ページ2を表示する必要がありますが、デバッグモードの場合、ページパラメータは0であるため、常にリストの最初のページが表示されます。

新しいmvc2プロジェクトを開始するときに、グローバルasaxで事前定義された標準ルートを使用しています。

私は何かが足りないのですか?

//This is the ProductsController

   public ViewResult List(int page = 0)
    {

        var products = productsRepo.Products()

   //send in source, current page and page size
        productList = new PagedList<Product>(products, page, 10);

        return View(productList);
    }
4

3 に答える 3

3

「=0」を削除して、次の手順を実行します。

public ViewResult List(int? page)
{
    int val = page.GetValueOrDefault(0);

そして、ページの代わりにどこでもvalを使用してください。それはうまくいくはずです。そうでない場合は、ルーティングの問題です。

HTH。

于 2010-08-26T15:47:27.120 に答える
3

これはルーティングの問題です。デフォルトルートはidプロパティを指定します。使用しているのは。というプロパティですpage。私自身はMVCを初めて使用しますが、デフォルトルートの前に次のルートを追加します。

routes.MapRoute("MyRoute", "{controller}/{action}/{page}",
    new { controller = "Foo", action = "List", page = UrlParameter.Optional });
于 2010-08-26T15:50:51.763 に答える
0

答えるのがとても遅いことを私は知っています。MVCのデフォルトルートは次のとおりです

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

これは、パラメーター名がidである必要があることを想定しています。これで、パラメーター名をidに変更するか、App_Startフォルダーの下にあるroute.configファイルで独自のルートを定義するかの2つのオプションがあります。

于 2019-05-16T06:23:41.187 に答える