C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: ascxファイルの場所について


(過去ログ 10 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■1963 / inTopicNo.1)  ascxファイルの場所について
  
□投稿者/ 秋雨 (1回)-(2007/03/11(Sun) 10:08:01)

分類:[C# (ASP.NET)] 

細かいことなんですが、気になったので聞いてみたいことがあります。

現在C#でASP.ET2.0のWebサイトを構築しています。
構成的にはaspxには大まかなサイトのひな形だけ。
ascxにGrdiViewやコントロール類を配置して、処理の呼び出し部分をcsファイルに実装。
App_codeフォルダ以下のクラスに実際の処理を行うクラスを実装。
という形でコーディングしています。

このうちのascxファイルについて何ですが、今は「control」というフォルダをルート直下に作り
そこに全てのascxファイルを入れてあります。
ここでふと気になったんですが、ascxファイルはこういう設置で問題ないんでしょうか?
例えばログインページがあるとすると、現在は
login.aspxはルート直下にあり、login.ascxは root/control/ 以下にあります。
ここで気になったのは、aspxファイルと同じ場所に置いた方がいいのかどうかです。

皆さんはascxファイルをどこに設置しているでしょうか?
引用返信 編集キー/
■1969 / inTopicNo.2)  Re[1]: ascxファイルの場所について
□投稿者/ 囚人 (72回)-(2007/03/11(Sun) 16:05:47)
推奨というものはないかもしれませんが、注意点を。
ascx ファイル内に書いた <img src="..."/> 等の、通常タグの相対URL は、「ascx を使用した aspx からの相対URL」
<asp:image … /> 等の、サーバーコントロールの相対URLは「ascx ファイルからの相対 URL」となってしまいます。
なので余計なことを考えなくて済む、「全部ルート直下」もありかと思われます。
引用返信 編集キー/
■1975 / inTopicNo.3)  Re[2]: ascxファイルの場所について
□投稿者/ 秋雨 (2回)-(2007/03/12(Mon) 00:40:53)
> ascx ファイル内に書いた <img src="..."/> 等の、通常タグの相対URL は、「ascx を使用した aspx からの相対URL」
> <asp:image … /> 等の、サーバーコントロールの相対URLは「ascx ファイルからの相対 URL」となってしまいます。
> なので余計なことを考えなくて済む、「全部ルート直下」もありかと思われます。
そうなんですよね。
自分もそれでたまに「あっ、ここからだとパス違うや」みたいに間違うことがあるので
どこに置けばいいのかなあと悩みまして。

使用するaspxと同じ所に置けば、それは解決するとはわかるんですが
一つのascxを違う階層にある複数のaspxから使うこともあったりで、これがいい!っていう解決法が思いつかずにいます。

.netの仕様的に、ascxが置いてある場所からの処理ではなくて、
ascxを用いているaspxがある場所からの処理で統一してくれれば楽なんですけど。

Response.Redirectなんかもascxがあるところからのパスになるので。。。

引用返信 編集キー/
■1976 / inTopicNo.4)  Re[3]: ascxファイルの場所について
□投稿者/ 囚人 (73回)-(2007/03/12(Mon) 01:29:05)
>.netの仕様的に、ascxが置いてある場所からの処理ではなくて、
>ascxを用いているaspxがある場所からの処理で統一してくれれば楽なんですけど。

それだと、尚更 aspx の場所に依存してしまい ascx を使いまわす事が出来なくなってしまいます。
解決策としては、ascx で使用するものは全てサーバーコントロールにしてしまう事かな、と思います。つまり、ascx は自身が使われる aspx の場所を一切意識ない方がよいかと。
現実はデザイナーさんとの絡み等もあり、うまくいかないかもしれませんが。
引用返信 編集キー/
■2042 / inTopicNo.5)  Re[4]: ascxファイルの場所について
□投稿者/ 刈歩 菜良 (33回)-(2007/03/15(Thu) 16:16:09)
刈歩 菜良 さんの Web サイト
ASP.NET2.0であれば、アプリケーションルートが使えますよ。

<%@ Register Src="~/Controls/MyUC.ascx" TagName="MyUC" TagPrefix="uc1" %>

これでしたら、ASPXをどのフォルダに動かしても無問題。

引用返信 編集キー/
■2043 / inTopicNo.6)  Re[5]: ascxファイルの場所について
□投稿者/ 刈歩 菜良 (34回)-(2007/03/15(Thu) 16:22:04)
刈歩 菜良 さんの Web サイト
ちなみに、アプリケーションルートはサーバーコントロールを使った時しか認識されないのでご注意を。

なので、image タグには使えません。画像に対してアプリケーションルートを使う必要があるならば、画像を動的に変更する必要性がなくてもImageコントロール(asp:Imageのことね)を使う必要があります。

# わたしはまりましたは。(おしい、もう少しで回文だった)
引用返信 編集キー/
■2053 / inTopicNo.7)  Re[5]: ascxファイルの場所について
□投稿者/ 囚人 (74回)-(2007/03/15(Thu) 22:58:31)
No2042 (刈歩 菜良 さん) に返信
> ASP.NET2.0であれば、アプリケーションルートが使えますよ。
>
> <%@ Register Src="~/Controls/MyUC.ascx" TagName="MyUC" TagPrefix="uc1" %>
>
> これでしたら、ASPXをどのフォルダに動かしても無問題。

一応 1.1 から使えたような…。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -