質問: new editladyview(); return view("editlady", model); } [httppost] public updatelady(lady lady){ if (modelstate.isvalid){ // 更新 // lady.idをキーにしてdbを更新 } else { // 再表示 } } [httppost] public deletelady(int id){ // 削除 // idをキーにしてdbを削除 } } 質問点は以下の通りです。 ■表示はokですが、できたhtmlを見ると、各行の項目が同じid / name名になります。これで正しいですか? ■同じform内に更新ボタンが複数あった場合、formのpost先を変える必要がありますが、javascriptを使うのでしょうか? ■検証失敗時、全体を再表示するにはどういった方法があるでしょうか? 読み直すと入力した値が消えてしまいます。 会社にmvcの経験者がおらず、苦労しています。 なにとぞお助けください。
回答: > ■表示はokですが、できたhtmlを見ると、各行の項目が同じid / name名になります。これで正しいですか? okじゃないから質問してるのでは? それはともかく、どのようなデータを渡しているのか、またview側の受け取るデータの型がどうなっているか、とかが掲載されたプログラムだけじゃわかりません。 ちゃんと複数のデータ格納して渡せてます? > ■同じform内に更新ボタンが複数あった場合、formのpost先を変える必要がありますが、javascriptを使うのでしょうか? 行ごとに存在する更新ボタンのことですよね? だったらformのpost先を変える必要はないように思いますが。。。 > ■検証失敗時、全体を再表示するにはどういった方法があるでしょうか? 読み直すと入力した値が消えてしまいます。 updatelady で受け取っているデータが一つだけなのが気になります。 ここで全データ受け取ってるならそのままもとのページに返せばいいだけのはず。 まぁ、どの部分を変更しようとしているか、という対象のとりだしに工夫が必要ですが。 データを一つしか受け取らないなら、他の行については再度取得してビュー側に渡す必要があると思います。