1

.NETでwebforms/masterpageを使用しています。

私のページには多くのWebユーザーコントロールがあります。

いくつかの「文字列」を置き換えることができるポイントはありますか?

たとえば、.NETが生成する場合:

<div>Hello my Name is Marco</div>

で変更:

<div>Hi, my Name is Luca</div>

出来ますか?または、これらのデータを(DBから)取得してresponse.writeを実行するたびに、特定のユーティリティを作成する必要がありますか?

4

4 に答える 4

2

ASP.Net WebFormsのアプローチは、ラベルコントロールを使用し、コードビハインドで名前を設定することです。

したがって、aspxファイルには

<div>Hello my Name is <asp:Label id="NameLabel" runat="server"/></div>

そして、あなたのコードbehideファイル、すなわちaspx.csは含まれます

NameLabel.Text = "Luca"

また、何か汚いものを実装しようとしている場合は、フィルターを使用してHTTP応答を変更することが可能です。この記事では、より詳細に説明します。http://www.4guysfromrolla.com/articles/120308-1.aspxしかし、これを使用することはお勧めしません。

于 2012-06-19T08:23:27.977 に答える
1

IHttpModuleを書いてPreSendRequestContentイベントに接続し、ここで置換を行うことができるはずです。ここに示されているソリューションを見てください:http ://www.tek-tips.com/viewthread.cfm?qid = 1149673

于 2012-06-19T08:25:38.837 に答える
0

この手法を使用すると、再コンパイルせずに、データ、ロジック、およびUIの問題を分離したまま、ユーザーに表示されるメッセージを変更できます。「シンプル」ではありませんが、きれいです。

免責事項:IDEを使用して書かれていません

Webフォーム

<div><asp:Literal id="litHelloMessage" runat="server" text="<%=GetHelloMessage() %>" />
<asp:Literal id="litName" runat="server" text="<%=User.Name %>"/>

コードビハインド

public class MyPage : Page
{
   public User User { get; set; }

   public void Page_Load()
   {
      // logic to fetch the user from your persistence store
      // e.g. User = MyUserRepo.Fetch(uid);

      // Important
      DataBind();
   }

   public string GetHelloMessage()
   {
        // this is straight forward, alternatively you could have  some logic here to 
        // derive which which message is shown to the user
        litHelloMessage = GetLocalResourceObject(User.MessageResourceKey).ToString();
   }
}

リソースファイル(App_LocalResources / mypage.resx)

Key                  Value    
"HelloMessage"       "Hello my Name is" 
"HiMessage"          "Hi, my Name is" 

ユーザークラス

public class User
{
    public string Name { get; set; }

    public string MessageResourceKey { get; set; }
}

サンプルデータ

Name         MessageResourceKey 
"Marco"      "HelloMessage"
"Luca"       "HiMessage"
于 2012-06-19T08:41:03.983 に答える
-2

必要なのはテンプレートエンジンです。これはウィキペディアからの良いスタートです http://en.wikipedia.org/wiki/Template_engine_(web)

または、他の人が指摘したように、MVCコンセプトのビュー部分。

テンプレートエンジンを実装するにはさまざまな方法があり、すぐに使用できる方法は他にもたくさんあります。

于 2012-06-19T08:23:06.930 に答える