私は2つのActionメソッドを持つProdcutsControllerを持っています。インデックスと詳細。 インデックスは製品の一覧を返し、詳細は選択した製品IDの詳細を返します。ASP.NET MVC3:リストと詳細ビューの同じ名前と異なる引数を持つActionMethod
だから私のURLが
sitename/Products/
のような製品のリストを表示するには、インデックスビューをロードします。
sitename/Products/Details/1234
ロードされます詳細は、1234
は、今私は私の2番目のURLから「詳細」という言葉を避けたい製品の詳細を表示するように表示します。それは私がそれでパラメータを指定して「インデックス」に「詳細」からの私のアクションメソッドの名前を変更しようとした
sitename/Products/1234
のようになりますように。しかし、それは私が今
The type 'string' must be a non-nullable value type in order to use
it as parameter 'T' in the generic type or method 'System.Nullable<T>
をこのエラーを取得しています。この
public ActionResult Index()
{
//code to load Listing view
}
public ActionResult Index(string? id)
{
//code to load details view
}
をしようとした私にエラー「Method is is ambiguous
」
を示し、それはメソッドのオーバーロードをサポートしていないことに気づきました!どのように私はこれを処理するのですか?私は私のルート定義を更新する必要がありますか?値が整数型であると仮定すると
public ActionResult Index(int? id)
{
//code to load details view
}
:
オデッドのようなルートをキャッチしませんので:最初のものは私に404エラーを与えた2つ目は、私に不明瞭Indexメソッドのエラーを与えました。 global.asaxで経路登録を更新する必要がありますか? – Happy
@Happy - 他にも 'Index'アクションはありますか? – Oded