?id=2
のようなURLを持って言うことができます場合
わからない、どのように私はそれを作るのですかidの代わりに
/<article_title_name>/
のように表示してください。
私は数時間前からグーグルグーグルをしていましたが、記事IDを使って選択した記事が表示されているにもかかわらず、どのように記事名を取得できるのか分かりませんでした。
私がそれをうまく説明したかどうかはわかりません。
?id=2
のようなURLを持って言うことができます場合
わからない、どのように私はそれを作るのですかidの代わりに
/<article_title_name>/
のように表示してください。
私は数時間前からグーグルグーグルをしていましたが、記事IDを使って選択した記事が表示されているにもかかわらず、どのように記事名を取得できるのか分かりませんでした。
私がそれをうまく説明したかどうかはわかりません。
は、ここで私はスラグのリンクを行うだろう方法は次のとおりです。
これはむしろちょうど見つけるために、投稿のタイトルにstring
をマッチングにいくつかの魔法を、魔法を逆にすることよりも、あなたの人生は、ちょうどその少し簡単に行う必要がありますID。ここで
が行く...
は、モデル上の別のプロパティを持っている:
と同じように、sluglink
またはお好みの何かと呼ばれる、あなたのArticle
のためのあなたのDBテーブル/モデル内の別の列/プロパティを作成します。意味のある
それらを生成する方法を作成します。
あなたがなどのリポジトリDB /にあなたの記事を保存すると、あなたのためのリンクを作成して、その場でそれを保存することができます機能を持っています。
こうして、マジック文字列をIDにリバースエンジニアリングする必要はありません。あなたはデータベース/ストアなどで一致するスラッグを見つけて、それをそのまま返すことができます。
これを行うには素晴らしい機能があります(this postのおかげで) - 投稿自体は、拡張メソッドを作成するときにメソッドを提供します。私は念のためにあなたが拡張メソッドにはわからない、それを適応し、簡潔にするために一つの関数にそれを凝縮しました:
public string GenerateSlug(string postTitle)
{
var str = System.Text.Encoding.ASCII.GetString(System.Text.Encoding
.GetEncoding("Cyrillic")
.GetBytes(postTitle));
// invalid chars
str = Regex.Replace(str, @"[^a-z0-9\s-]", "");
// convert multiple spaces into one space
str = Regex.Replace(str, @"\s+", " ").Trim();
// cut and trim
str = str.Substring(0, str.Length <= 45 ? str.Length : 45).Trim();
str = Regex.Replace(str, @"\s", "-"); // hyphens
return str;
}
それはあなたがこの機能を配置するのはあなた次第です。私はあなたに決めるつもりです。あなたのPostTitle
またはあなたが「slugify」にしたいものは何でも渡し、
コールGenerateSlug
方法;:
スラグを生成し、保存しますあなたの "スラッグ"のためのすてきな文字列を返します。
はその後、すべての正直で
かなり簡単な記事を、取得などのデータベース/ストア
にその文字列を格納します。
ルーティングテーブルでこれを翻訳してWebフォームに戻し、正しい記事を検索して見つけることができます。これを行うには良いリンクがあります:http://weblogs.asp.net/scottgu/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series
次に、実際にはGetArticleById(1234)
と同じ方法で、あなたのリポジトリ/ストアから;私は別の方法を作成する - 何かを推測する... GetArticleBySlug(heres-a-great-article)
- またはもう一度、あなたが好きなもの。
最後
あなたはそれが長いかどう(全体スラグを入力して節約デバッグまたは任意の場合している場合には、純粋であることのために、私はまだ、IDによってそれを行うためのオプションを持っていると思います記事名)。
これは、起動して実行し、このことができます:)
希望いくつかの素晴らしい探してナメクジにあなたの方法であなたを取得する必要があります!
このリンクは役立ちます:) http://weblogs.asp.net/scottgu/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series - すべてのVS 2010上位に適用され、.NET 4.0以降では –
です。あなたが探しているのは「スラッグ」リンクだと思います。 Googleを持っていれば、チュートリアルをたくさん手に入れることができます:) –
@GeoffJamesありがとう、私は自分自身でそれを見つけることができませんでした> w <'読み始める' – Harugawa