0

MVCビューのモデルにバインドされているHtml.Telerik()。Grid()があります。web.configのappsettingsの値に基づいてリンクを返すようにします。基本的に、これが開発サーバーである場合、リンクを表示しますが、本番サーバーには表示しません。それは可能ですか?私はAjaxバインディングを使用しており、バインドされた列は次のようになります。

columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

status.txtを開発ではリンクにしたいが、本番ではリンクにしたくない(これが現在の状況です)

ありがとうございました。ジャック

4

2 に答える 2

0

アプリケーションがデプロイされているかどうかに応じて、クライアントテンプレートを異なる方法で設定する必要があります。

if (/* some check to see if on production which is specific to your implementation */) {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #>Download <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);

} else {
columns.Bound(f => f.TechnicalKey)
       .ClientTemplate("<# if (FileName != 'status.txt' && StatusText=='PROCESSED') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# } #>")
       .Title("").Filterable(false);
}
于 2011-05-06T07:57:37.587 に答える
0

私は実際に、次のようにドメインオブジェクトにプロパティを追加することでこれを達成しました。

    public bool isProduction
    {
      get
      {
        return ConfigurationManager.AppSettings["ActivationURL"].Contains("production");
      }
    }

そして、私が持っていたビューで:

    .Columns(columns =>
                  {
                    columns.Bound(f => f.TechnicalKey)
                      .Template(f => { %>
                                          <% if (f.StatusText == "PROCESSED")
                                              {
                                                if (!f.isProduction || f.FileName != "status.txt")
                                                {                          
                                                  %><a href="/AType/DownloadAFile/<%= f.TechnicalKey %>">Download</a><%
                                                }
                                                else
                                                {
                                                  %>Not available<%
                                                }                                
                                              }
                                              else
                                              {
                                                %>Not available<%
                                              } 
                                            %>
                                    <% })
                      .ClientTemplate("<# if (StatusText=='PROCESSED') { if(!isProduction || FileName!='status.txt') { #><a href='/AType/DownloadAFile/<#= TechnicalKey #>'>Download</a> <# } else { #>Not available<# }} else { #>Not available<# } #>").Encoded(false).Title("").Filterable(false);

このようにして、最初のサーバーにバインドされたデータと、後のAjaxにバインドされたデータに対応します。

于 2011-05-08T18:52:43.750 に答える