2012-01-13 21 views
14

私はすべての特殊文字をreplace関数で置き換える方法を探していました。私は剃刀の構文を使用したいが、これはRegex with Razor

@Product.Name.Regex.Replace(@"[^A-Za-z0-9/\s/g]", "_") 

はトリックを行いません。

私はこの

@Regex.Replace(@Product.Name,@"[^A-Za-z0-9/\s/g]", "_") 

を試みたし、それは同様に失敗しました。

誰も助けてください は、「名 『正規表現は、』現在のコンテキスト内に存在しない」:

は、今では私は他の多くの事と私は、このエラーメッセージが出続ける多くの時間を試してみました?

答えて

21

テンプレートの先頭に@using System.Text.RegularExpressionsを追加する必要があります。また、this questionは、この名前空間をすべてのテンプレートで使用できるようにする場合に役立ちます。

+0

ありがとうございます!それがトリックでした。 –

+0

Raskolnikovの答えに追加するだけで、クラスの正しい名前が分かっていても名前空間がわからないときは、CTRL + PERIODを押すと、Visual Studioは正しい名前空間をインポートするための "解決"機能を提案します。しかし、私はこれがViewで動作するとは思えません。おそらくcsファイルだけであると思います。 – programad

+0

これは見た目ではうまくいくはずですが、確かにこれを行うResharperを使うと、私は完全にはわかりません。あなたがそれを使用していないなら、私は強くあなたにそれを与えることをお勧めします。 –

6

完了していることが、正規表現のための右のコードは次のとおりです。

@Regex.Replace(@Product.Name,@"[^A-Za-z0-9\.\,_]", "_") 

これは、アンダースコアですべての特殊文字を置き換えます。