†でおきしブログ†

ウナギ食べたいヽ(•̀ω•́ )ゝ✧

【.NET】viewからcontrollerへList<>構造で返却できない?【Entity Framework】

☆.NET MVCに慣れない人のメモ

※以降、Razor表記を前提にしてます

明確な答えが見つからなかったけれど、無理っぽいので配列で返却する事に。
@Html.TextBox("tempArray[0]",null)

受け側のコントローラーの引数にstring[] tempArrayとか入れとけば良い

ちなみに自前でクラスを作ってにこんなのもできる
public class Hoge{
    public string[] strArray;
    public Fuga[] fuga;
}
public class Fuga{
    public string text;
}

fugaとかstrArrayにあらかじめ設定してControllerからviewを起動
@model ***.Hoge
~略~
@Html.TextBoxFor(model => model.tempArray[0])
@Html.TextBoxFor(model => model.fuga[0].text)

受け方のコントローラーの引数にHoge modelとかしておけば良い

☆で、なんでList<>構造の返却がしたかったかと言うと

ADO.NET Entity Data Modelで作成したテーブルに、アソシエーションでリレーション設定すると、1対n関係のテーブルの"n"がList<>として"1"のEntityに定義されたんです。
それで、"1"のEntityをViewに渡して"n"のデータも一緒に参照・更新できてコントローラーに返却したいと思ったわけです。

けれど、これができないw
参照はできるのだけれど、コントローラーへの返却後のデータ内のList<>がnullなんです。


なので、こういった場合はC⇔V間で受け渡し用のEntityクラスを作るしかないのかなぁと…
そんな馬鹿なと思うので、きっと良い方法があるはずだと思うんだけれど


ではでは。