ページングと検索オプションを使用している私のウェブサイトでは、ユーザをリダイレクトして検索オプションを渡す必要があります。このアクションでは、URL(例:http://localhost:1234/?Project.Models.TestModel=...。)を持つ検索モデルを渡す必要はありません。次のように値に基づいてHtml.ActionLinkでパラメータを渡す
今私ActionLinkのは、次のとおりです。
@Html.ActionLink(i.ToString(), "Index", new { idtrips = Model.idTrips, inituser = Model.initUser, date = Model.date.ToString("ddMMyyyy"), page = i})
クリックすると、これは次のヘッダーになり: http://localhost:58763/?idtrips=0&inituser=0&date=05042016&page=5
私の質問は: HTMLに句場合は、何らかの形で追加することができます.ActionLinkは必要な場合にのみ値を返します。たとえば、私は日付が設定されているだけで、URLはhttp://localhost:58763/?date=05042016&page=5にします。他の値は私のコントローラのデフォルト値を持っているので、このURLは動作しますが、私はそれを生成することができません。
マイコントローラ:
public ActionResult Index(long idtrips = 0, long inituser = 0, string date = "", int page = 1)
{ ... }
私が探している何がおそらくternary statement(例えばインライン-if文)でこれを達成することができ、この,:
@Html.ActionLink(i.ToString(), "Index", new { if(Model.idTrips > 0) { idtrips = Model.idTrips,} page = i})
しかし、これはまだ私を与えるだろうURL "http:// localhost:1234 /?Idtrips = 0&page = 5" これは私が避けたいものです。新しい{page = 5}または新しい{Idtrips = 1、page = 5}とインラインのようにする必要があります。 Html.ActionLinkを使ってif文やswitch文を使うのではない –
'idtrips'パラメータをnullにすることをお勧めします。これは、あなたが探している意図した効果を与えます(つまり、nullのときは 'idtrips'パラメータの表示はありませんが、デフォルトは0ですが、それ以外の場合はパラメータが表示されます)。 –
私はそれらをnull値に変更しました。あなたの迅速なサポートをありがとう! –