質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

666閲覧

asp.net mvc listのmodelの表示の際のエラー

sanezane

総合スコア91

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2018/07/02 15:49

listのmodelの表示について。商品名を取得して、要素に設定したい。
id=P1からP20までの要素にそれぞれ名称を入れたい。
現状1個しか入れることができていない。こんな感じ↓

Index.cshtml $('#P1').attr('data-title', '@Model.GoodsMeisho.First().goodsmeisho');

そこでとりあえず名称を出そうと思い、下記のようにscriptを書いてみた。
ビルドは通り、デバッグ実行すると「重大な JavaScript エラーが検出されました\n\nSCRIPT1002: 構文エラーです。」と表示される。動的scriptが表示され、名称が取得できていることは確認できるが、エラーが出てしまう。
idと名称をそれぞれforeachで回して設定したいのです。
お力をお貸しねがいます。

c#

1 2View 3 4 @foreach(var item in Model.GoodsMeisho) 5 { 6 <p>maisho = @item.goodsmeisho</p> 7 }

c#

1//<summary> 2 ///グッズ名称取得 3 ///</summary> 4 private IEnumerable<GoodsModel.GoodsMeishoViewModel> GetGoodsName(NpgsqlConnection dataConnector) 5 { 6 List<GoodsModel.GoodsMeishoViewModel> GoodsMeishos = new List<GoodsModel.GoodsMeishoViewModel>(); 7 8 9 //テスト用の値 10 string Type_cd = "A"; 11 12 13 string sql = @"select box_tsuban, goods_tsuban, goods_meisho" 14+ " from master.グッズ名称マスタ where Room_cd = :RoomCd and Type_cd = : TypeCd and box_tsuban = :Box_tsuban and goods_tsuban = :Goods_tsuban"; 15 16 NpgsqlCommand cmd = new NpgsqlCommand(sql, dataConnector); 17 cmd.Parameters.Add(new NpgsqlParameter("kikishitsuCd", NpgsqlDbType.Text)); 18 19 cmd.Parameters.Add(new NpgsqlParameter("TypeCd", NpgsqlDbType.Text)); 20 cmd.Parameters.Add(new NpgsqlParameter("Box_tsuban", NpgsqlDbType.Integer)); 21 cmd.Parameters.Add(new NpgsqlParameter("Goods_tsuban", NpgsqlDbType.Integer)); 22 cmd.Prepare(); 23 cmd.Parameters["RoomCd"].Value = Session["RoomCode"].ToString(); 24 cmd.Parameters["TypeCd"].Value = Type_cd; 25 cmd.Parameters["Box_tsuban"].Value = goods_tsuban; 26 cmd.Parameters["Goods_tsuban"].Value = goods_tsuban; 27 28 using (NpgsqlDataReader dr = cmd.ExecuteReader()) 29 { 30 while (dr.Read()) 31 { 32 GoodsMeishos.Add(new GoodsModel.GoodsMeishoViewModel() 33 { 34 boxtsuban = (int)dr["box_tsuban"], 35 goodstsuban = (int)dr["goods_tsuban"], 36 goodsmeisho = dr["goods_meisho"].ToString() 37 38 }); 39 } 40 return GoodsMeishos; 41 }

c#

1model 2 3public class GoodsModel : 〇〇ModelBase 4 { 5 ///<summary> 6 ///グッズ名称をセット 7 ///</summary> 8 public IEnumerable<GoodsMeishoViewModel> GoodsMeisho { get; set; } 9 10 public class GoodsMeishoViewModel 11 { 12 //box通番 13 public int boxtsuban { get; set; } 14 15 //グッズ通番 16 public int goodstsuban { get; set; } 17 18 //グッズ名称 19 public string goodsmeisho { get; set; } 20 }

c#

1 public ActionResult Index() 2 { 3 var model = this.CreateModel<GoodsModel>(); 4 // セッションよりNpgsqlConnectionを取得 5 NpgsqlConnection dataConnector = (NpgsqlConnection)Session["dataConnector"]; 6 7 // DBオープン 8 dataConnector.Open(); 9 10 11 model.GoodsMeisho = GetGoodsName( dataConnector); 12 13 dataConnector.Close(); 14 15 return View(model); 16 17 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/03 00:22

質問する際は開発環境を書くようにしてください。OS, .NET, MVC, Visual Studio のバージョン、テンプレートは何を使ったかなどです。前のスレッドで書いたのかもしれませんが、ここしか見てない人も多々いるはず。
退会済みユーザー

退会済みユーザー

2018/07/03 00:24

定義不明の変数、メソッドを含めたコードは書かないようにしてください。前にもお願いしたはずです。前のスレッドで書いたのかもしれませんが、ここだけ見れば分かるようにしてください。
退会済みユーザー

退会済みユーザー

2018/07/03 00:29

もう一つお願いです。あなたのデーターベースは第三者には誰にもわからないということを認識してください。GetGoodsName メソッドで何が取得できるかなんてことは誰にもわかりません。そのメソッドが返すオブジェクトのサンプルを書いてく、それをベースに話をしてください。
sanezane

2018/07/04 06:10

すみません。以後気をつけます。
guest

回答1

0

ベストアンサー

下記、Viewの記述(htmlの生成)で、pタグに連番のP1から始まるidをふっています。(P1~Pnになりますが・・・)

@foreach (var item in Model.GoodsMeisho.Select((val, index) => new { Val = val, Idx = index })) { <p id=@string.Format("P{0}", item.Idx + 1)>maisho = @item.Val.goodsmeisho</p> }

投稿2018/07/03 06:49

f_horizon

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanezane

2018/07/04 06:09

ありがとうございます。期待する動作を実現できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問