ASP.NET MVC (659レス)
上下前次1-新
420(1): 2015/10/05(月)19:36 ID:??? AAS
ある
そう書きたくなければHTMLのAタグ使え
421: 2015/10/05(月)20:03 ID:??? AAS
>>420
的確なお答えありがとうございます。
(やはりつながっていたわけか。)
MVCフレームワークはいろいろ裏でつながっているので、
便利なのだろうが、察知力が必要だなと思いました。
今察知して、そうなのかなと思ったことは、
そのコントール/アクションへ制御を飛ばしてくれた「ルーティング情報」の、
/{contoller}/{action}/{param} URIパターンで使用されている名称が、
アクションメソッドから起動されたヴュースクリプト上のヘルパーメソッドに絡んでくるのかなということです。
(これは、正しいでしょうか?)
省3
422(3): 2015/10/05(月)20:19 ID:??? AAS
つながっているというかだ
実際にレンダラーに渡されるURIはこう
/{controller}/{action}?{param}=○○
モデルバインドで同名変数にクエリパラツッコむ関係上こうなるしかない訳
423: 2015/10/06(火)02:09 ID:??? AAS
>>422
>つながっているというかだ
すみません、この意味がつかめません。、
前後の文脈も大切にしたいので、お願いします。
424(1): 2015/10/06(火)15:40 ID:??? AAS
つながっていると言うと密結合を意味しているように取れる
MVCはURL階層ルーティングができるのが売りだが、それはクエリ方式にマッピングしているだけで
事実>>422のようにアクセスしても全く同じ動作をする
密結合ならこんな途中入りはできない
MVCはこんなように○○に見えるけど実際はXXに変換してるだけ、てのが多い
この辺の考え方はモデルバインドで効いてくるから覚えとくといいぞ
425(1): 419 2015/10/07(水)13:00 ID:??? AAS
>>422
>>424
レスありがとうございます。
>>422>実際にレンダラーに渡されるURIはこう
>>424>事実>>422のようにアクセスしても全く同じ動作をする
ちょっと見えてきました。
MVCは、URIルーティング対応でも、内部的にはクエリストリングでパラメーターを処理しているという理解をしたんですが、良いでしょうか。
>>419で、ヘルパーメソッドActionLinkの第3引数に渡した匿名オブジェクト(プロパティを構成したもの)についてですが、
そのプロパティー名が、さきのクエリストリングのKey(?Key=parameter)に当たるのだと思ってすっきりとしました。
それだと、匿名オブジェクトに構成するプロパティー名は、クエリストリングのKeyに一致させる必要があるとわかります。
省3
426: 419 2015/10/07(水)13:06 ID:??? AAS
>>425
> 匿名オブジェクトに構成するプロパティー名は、クエリストリングのKeyに一致させる必要があるとわかります。
読み返していたら、やっぱり、わからなくなりました。
URIで指定されたパラメーターが内部的に、クエリストリングで処理されていることはわかりました。
しかし、ヘルパーメソッドActionLinkで作成されるのは、URI(/A/B/パラメーター)です。
ここにはクエリストリングのKeyは登場せずに、パラメーターだけがあります。
すると、あくまでURIを作成するActionLinkの第3引数に渡すパラメーター刻印用の匿名オブジェクトで、
そのプロパティ名とパラメーター名を一致させる必要性がわかりません。
427(1): 2015/10/07(水)14:50 ID:??? AAS
ActionLinkは生成時にRouteを逆引きしているらしく、マッチングにクエリ文字列も使っているらしい
ルーティングパターンが複雑化してくると意図しない物にマッチングすることがある
単純パターンのみなら不一致でも動くことが多いが、一旦ハマると原因特定が困難になる
まあ一度地獄を見てみるのもいいぞ 何事も経験だ
○○に見えるけど〜の典型例はモデルバインド
ControllerのAction引数に独自モデルクラスを指定できるが
メンバをベタに書いても同じ動作をする
public class HageModel{
public string hage{get;set;}
public int hoge{get;set;}
省5
428: 419 2015/10/10(土)01:29 ID:??? AAS
>>427
すみませんレスが遅くなってしまいました。
ありがとうございます。
>ルーティングパターンが複雑化してくると意図しない物にマッチング
>一旦ハマると原因特定が困難
ActionLinkメソッドはヘルパーすぎて、動作が見えなくなるところが怖いですね。
何をしているのか仕組みが見えていないと、初心者には反ってふさわしくないのかもしれないですね。
この例では、URIのルーティングテーブルの内容によって、予期しなかった(夢にも思わなかった)リンクが生成されることで、
バグに悩まされるという問題ですね。
>Action引数に独自モデルクラスを指定できるがメンバをベタに書いても同じ動作
省2
429(1): 2015/10/13(火)17:39 ID:??? AAS
やってみると分かるが、ViewからクラスをActionにPOSTすることはできない
メンバを一つ一つ指定してやる必要がある
それらをモデルクラスのプロパティ名とマッチングして代入して引渡まではライブラリ側でやってくれる
モデルクラスにないものを指定するとルーティングでアンマッチと見なされる
逆にモデルにあってクエリになくても数値型以外は省略可能なのでマッチする
430: 419 2015/10/16(金)06:12 ID:??? AAS
>>429
レスありがとうございます。すみません。
>ViewからクラスをActionにPOSTすることはできない
>メンバを一つ一つ指定してやる必要がある
今は、紫の本で勉強中です。ちょっとわかりません。
ビュースクリプトにモデルクラス(Object型)を渡して、ビュースクリプトないで@foreachで回して、
構造を作成できるところまで知っていますが、
逆に、コントロール側にモデルを渡す段階にまで勉強が追いついてません。
しかし、考えてみれば、ポストバックによってクライアントからデータ投げられたデータを、
受ける必要があるわけで、その仕組みのことかなと予測してみました。その場合には、メンバを一つずつ指定する必要があるということなのかな。
省7
431(1): 2015/10/16(金)13:13 ID:??? AAS
ぶっちゃけた話
素のGET/POSTの仕組みを知ってからの方が数段理解が速いぞ
ASP.NET2.0あたりとは設計思想が全く異なるから
432(1): 419 2015/10/17(土)00:29 ID:??? AAS
>>431
なるほど。素のポストバックなんて意識しませんでしたね。
ずっと、WEBフォーム使っていたので、すべてコントロールを参照するだけでいけましたから。
そういえば、一度、HTMLの参考書でも読んでみようかな。
しかし、HTML 2についての本が本屋でよく見られます。
MVCで作成されるHTMLって、バージョン2なのかな。
433: 2015/10/17(土)04:09 ID:??? AAS
>>432
素のポストバックって、ポストバックはASP.NETの機能であって、言うなら素の
POST
htmlのバージョンで悩む以前に
httpというプロトコルを勉強した方がいい
434(1): 2015/10/17(土)17:45 ID:??? AAS
ASP.NETっていうか、WEBフォームの機能だろ
普通MVCでポストバックとは言わない(使わない)だろ
しかし、どう調べたら今時のhtmlがバージョン2とかいう事になるんだか
異世界の本屋か数の数え方の違う世界かね
435: 2015/10/17(土)19:39 ID:??? AAS
>>434
あっ!HTML5か。
436(1): 2015/10/18(日)05:09 ID:??? AAS
httpは2が来つつあるからごっちゃになったんじゃね
でも本当、MVCだけ勉強しても上っ面しかわからないと思うよ
それしか理解してなかったら割とすぐ行き詰まるんじゃないかな
大体もしASP.NET MVCがディスコンになったらどうするつもりだよ
437(5): 2015/10/18(日)07:12 ID:??? AAS
>>436
MVCせっかく勉強しているのに、それは勘弁。
今後も末永く、通用する技術じゃないんですか。
WEBフォームは、一通り勉強して、簡単なアプリなら作れるようになりました。
それなのに、MVCが主流になっちゃって。
>MVCだけ勉強しても上っ面しかわからない
自分は、逆で、html 5や、java script関連のクライアントサイド技術を直に扱った書籍を見かけると、まとまりのないように感じました。
材木が散乱している感じ。
まずは、MVCを理解してメインとして、必要に応じて、それらの「素」の技術を理解しようと考えました。
CSSについても、WEBフォームアプリを作りながら、デザインにも凝りたいと考えて、必要に応じて追加で勉強した感じです。
438(3): 2015/10/18(日)08:30 ID:??? AAS
>>437
WebフォームがオワコンでMVCが主流ってわけじゃないぞ。
社内向けのアプリだとまだまだWebフォームの方が有利だろ。
>自分は、逆で、html 5や、java script関連のクライアントサイド技術を直に扱った書籍を見かけると、まとまりのないように感じました。
そんなんじゃなくてHTTP POST/GETの仕組み。
一度、c言語でフルスクラッチのCGIアプリでも組んで修行をしなおせwww
439(1): 2015/10/18(日)09:32 ID:??? AAS
>>437
Web開発は、html, css, js, C#, .NET Framework,
Entity Framework, ASP.NETの知識など
いろんな技術の寄せ集めだから、積み上げていくしかないな
>>438
Cなんて回り道しなくても、C#やPHPのserver sideのプログラミング書籍に
HTTPの基礎くらいは解説されてるでしょ
上下前次1-新書関写板覧索設栞歴
あと 220 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s