2011-08-01 4 views
0

ASP.Net MVCを使用して求人掲示板のWebサイトを開発しています。認証されていない場合、電子メールアドレスまたはウェブサイトアドレスを非表示にする

たとえば、雇用者がジョブを投稿し、「[email protected]にメールを送信する」のような記述に何かを含めると、「適用するにはに電子メールを送信する - ログインまたは登録 'またはその言葉を登録してください。彼らがリンクにログインすると利用可能になります。

私はまだASP.Net MVCで学習者の段階にいるので、どこから始めるのか分かりません。私はこれが正しいことかどうか、あるいは代替的なアプローチがあるかどうかは分かりません。

ご協力いただきありがとうございます。

+0

使用しているMVCのバージョンは何ですか?これについては複数の方法がありますが、もしあなたがそれを提供すれば、私はいくつかの特定のコードを提案することができます:) –

+0

デビッド、私はMVC 3を使用しています。 – 0NLY777

答えて

0

regex searchを使用すると、投稿の電子メールアドレスを検索し、登録されていないユーザーに必要なリンクに置き換えることができます。

[更新]

public ActionResult ShowPosting() 
    { 
    var description = descriptionFromDB(); 

    if(!registeredUser) 
    { 
    model.Description = logicToReplaceTheEmailAddress(description); 
    } 
    else 
    { 
    model.Description= description; 
    } 

    return View(model); 

} 
+0

あなたの返信Bumble Bee。私はそのようなことをする必要があると推測しました。私の主な問題は、it.Ifについて説明する方法です。ユーザーが説明フィールドを塗りつぶして、Html.DisplayTextFor(model => Model.Description)私は電子メールのためにそのフィールドをスキャンするのですか? – 0NLY777

+0

があなたの質問の回答を更新しました。それを確認してください! – Illuminati

0

あなたが最良のメールアドレスのDisplayTemplateを作成し、それらのthroあなたのコードを実行することによって提供することができる

、only777。ここに私が意味するものの例があります。ビュー/共有/ DisplayTemplates下

<%: Html.DisplayFor(m => m.Email, "ViewIfAuthenticatedTemplate") %> 

、その後、ViewIfAuthenticatedTemplate.ascxという項目を追加し、そこに次のコードを追加します:あなたのビューインサイド

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %> 

<% if(Request.IsAuthenticated) { %> 
    <%: Model %> 
<% } else {%> 
    <%: Html.ActionLink("hidden link - please login or register", "MyAction", "MyController") %> 
<% } %> 

ない構文が100%であれば確認してください正しい、しかし、あなたはその要旨を取得。..

[編集] - 実際には、あなたが認証されない場合は隠さなければならなかった任意のテキストのために、このDisplayTemplateを使用することができます。

+0

このジムをありがとう。これは私にとって間違いなく選択肢です。理想的には、私は、専用の電子メールフィールドを持つことに加えて、他のすべてのテキストの間で説明に入力された電子メールアドレスを取得できるようにしたいと考えました。 – 0NLY777

+0

7777 - ああ、それはすべてを変えて、私は電子メールのプロパティが別のフィールドだと思っていた。私は2番目の考えを持っています。おそらく最高のあなたのサービスクラスで行われたその場合 –

関連する問題