タイトルの書き込みワードを置くことができなかったので、私は何を見ているのか説明しました。製品/インデックス/ 23の代わりにApple/ipad製品を達成
現在、私はViewで次のActionLinkコードを使用しています。
@Html.ActionLink(@product.Name, "Index", "Product", new { id = @product.Id }, null)
このコードは、私が欲しいもの、製品のコントローラ今
public ActionResult Index(int id)
{
Product product = pe.Products.Where(p => p.Id == id).First();
ViewBag.Title = product.Name;
ViewBag.Description = product.MetaDescription;
ViewBag.Keywords = product.MetaKeywords;
return View(product);
}
で、次のアクションメソッドにリダイレクトします。代わりにmysite.com/Product/Index/22の、私のURLは次のようなものでなければなりませんmysite.com/Product/Apple-ipad。
Idの代わりに製品名を使用し、それをアクションメソッドに渡すことができます。しかし、この方法では、Idフィールドは索引付けされているが、Nameは索引付けされていないため、問合せが遅くなると思う。これは私の処分で唯一の選択肢ですか?この要件をどのように処理するか教えてください。
私はSOの数字(私がIDと思われる)と質問のタイトルの両方を使用するのを見ました。あなたはどうやってSOの人はこれを管理していると思います –
私はあなたの最初の方法を理解することができません。非クラスタ化インデックスを使用するとどういう意味ですか?あなたが助けることができるか少しの説明を与えることができます....ありがとう –
グローバルasaxのルートを登録: routes.MapRoute( "製品"、 "{コントローラ}/{アクション}/{ID}/{ productName} "、 new {controller =" Product "、action =" Index "、id =" "、productName =" "} ); コントローラーでは、あなたが興味のある唯一のIDであるため、IDを見るだけです。 – linkerro