1

選択した価格帯で販売中の車を表示するクエリを作成しようとしています。

コントローラーには、機能する次のクエリがあります。

public ActionResult index (string searchString)
{
if (!String.IsNullOrEmpty(searchString))

 {
 Car = Car.Where(s => s.Car.CarName.Contains(searchString));

 }

実装に問題がある価格の最小値と最大値。

    public ActionResult index ( int min, int max, string searchString )
    {
       if (!String.IsNullOrEmpty(searchString))

      {

    Car = Car.Where(s => s.Car.CarName.Contains(searchString)
    && s.Price >= min && s.Price <= max).OrderBy(s => s.Price);


  ViewBag.minprice = min;
  ViewBag.maxprice = max;

ビューには、ビューバッグ (最小および最大) に対応するドロップダウン リストがあります。

エラーが表示されます:

オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。パラメーター名: パラメーター

4

2 に答える 2

0

おそらく、まだ古い URL を使用してインデックス ページにアクセスしています。この古い URL には、アクションで必要な最小引数と最大引数が含まれていないため、爆発しています。また、インデックスのカスタム ルートを作成した場合は、これらの 2 つの新しい引数を含めるようにルートを書き直したことを確認してください。

于 2012-04-11T21:29:40.947 に答える
0

これはルーティングの問題のようです。デフォルト ルートの前に、global.asax ページ (RegisterRoutes メソッド) に次のようなものを追加する必要があります。

routes.MapRoute(
      "IndexCompare", // Route name
      "{controller}/{action}/{min}/{max}/{searchString}", // URL with parameters
      new
      {
          controller = "{controller}",
          action = "Index",
          min = 0,
          max = 0,
          searchString = UrlParameter.Optional
      } // Parameter defaults
);

したがって、アクション シグネチャを変更するたびに、それに一致するルートがあることを確認する必要があります。

于 2012-04-12T00:59:30.070 に答える