質問するログイン新規登録

質問編集履歴

3

情報の削除

2018/09/30 05:31

投稿

pomu.pomupomu
pomu.pomupomu

スコア18

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,6 @@
16
16
 
17
17
  (1) レスの記入者を現在ログインしているユーザー名で固定したいが、ユーザー名をすべて表示してしまう。また、世の中の目標制作物に類似するものはそもそも「記入者=ログインユーザー名」だというのが自明なので表示してないように思えるので表示しない方法もあればご教授いただけたら幸いです。
18
18
 
19
- ![イメージ説明](f08ad8c48bf0d5e34d24cc7bcba0a097.png)!
20
19
 
21
20
 
22
21
  ### 該当のソースコード
@@ -40,7 +39,7 @@
40
39
  // 詳細については、https://go.microsoft.com/fwlink/?LinkId=317598 を参照してください。
41
40
  [HttpPost]
42
41
  [ValidateAntiForgeryToken]
43
- public ActionResult Create([Bind(Include = "Id,SortNo,TopicId,ResId,Title,Contents,ResOwnerId,ResponseCount,ViewCount,RecentResDate,CountNice,CountLaugh,CountTears,CountSurprise,CountAnger,HiddenFlag,DeleteFlag,DeleteUserId,DeleteUserIsAdmin,DeleteDate,CreateDate,CreateUserId,CreateUserIsAdmin,UpdateDate,UpdateUserId,UpdateUserIsAdmin")] Responses responses)
42
+ public ActionResult Create([Bind(Include = "Id,")] Responses responses)
44
43
  {
45
44
  if (ModelState.IsValid)
46
45
  {
@@ -84,22 +83,11 @@
84
83
  </div>
85
84
  </div>
86
85
 
87
- <div class="form-group">
86
+
88
- @Html.LabelFor(model => model.ResId, "重ねてレスするタイトル", htmlAttributes: new { @class = "control-label col-md-2" })
89
- <div class="col-md-10">
90
- @Html.DropDownList("ResId", null, htmlAttributes: new { @class = "form-control" })
91
- @Html.ValidationMessageFor(model => model.ResId, "", new { @class = "text-danger" })
92
- </div>
93
87
  </div>
94
88
 
95
- <div class="form-group">
96
- @Html.LabelFor(model => model.Title, htmlAttributes: new { @class = "control-label col-md-2" })
97
- <div class="col-md-10">
98
- @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })
99
- @Html.ValidationMessageFor(model => model.Title, "", new { @class = "text-danger" })
100
- </div>
101
- </div>
102
89
 
90
+
103
91
  <div class="form-group">
104
92
  @Html.LabelFor(model => model.Contents, htmlAttributes: new { @class = "control-label col-md-2" })
105
93
  <div class="col-md-10">
@@ -137,53 +125,6 @@
137
125
  }
138
126
 
139
127
  ```
140
- Model
141
- ```c#
142
- public partial class Responses
143
- {
144
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
145
- public Responses()
146
- {
147
- this.Responses1 = new HashSet<Responses>();
148
- }
149
-
150
- public int Id { get; set; }
151
- public Nullable<int> SortNo { get; set; }
152
- public Nullable<int> TopicId { get; set; }
153
- public Nullable<int> ResId { get; set; }
154
- [Display(Name = "タイトル")]
155
- public string Title { get; set; }
156
- [Display(Name = "レス内容")]
157
- public string Contents { get; set; }
158
- [Display(Name = "レスの書き込み者")]
159
- public string ResOwnerId { get; set; }
160
- public Nullable<int> ResponseCount { get; set; }
161
- public Nullable<int> ViewCount { get; set; }
162
- public Nullable<System.DateTime> RecentResDate { get; set; }
163
- public Nullable<int> CountNice { get; set; }
164
- public Nullable<int> CountLaugh { get; set; }
165
- public Nullable<int> CountTears { get; set; }
166
- public Nullable<int> CountSurprise { get; set; }
167
- public Nullable<int> CountAnger { get; set; }
168
- public Nullable<bool> HiddenFlag { get; set; }
169
- public Nullable<bool> DeleteFlag { get; set; }
170
- public Nullable<int> DeleteUserId { get; set; }
171
- public Nullable<bool> DeleteUserIsAdmin { get; set; }
172
- public Nullable<System.DateTime> DeleteDate { get; set; }
173
- public Nullable<System.DateTime> CreateDate { get; set; }
174
- public Nullable<int> CreateUserId { get; set; }
175
- public Nullable<bool> CreateUserIsAdmin { get; set; }
176
- public Nullable<System.DateTime> UpdateDate { get; set; }
177
- public Nullable<int> UpdateUserId { get; set; }
178
- public Nullable<bool> UpdateUserIsAdmin { get; set; }
179
-
180
- public virtual AspNetUsers AspNetUsers { get; set; }
181
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
182
- public virtual ICollection<Responses> Responses1 { get; set; }
183
- public virtual Responses Responses2 { get; set; }
184
- public virtual Topics Topics { get; set; }
185
- }
186
- ```
187
128
  ### 試したこと
188
129
 
189
130
  (1)
@@ -204,9 +145,6 @@
204
145
  return View();
205
146
  }
206
147
  ```
207
- ![イメージ説明](fbb2f9bc571cad065158c136b3651273.png)
208
- 表示されているchar型でのDropDownListの正体は、 ASP.NET Identityで用意したASPNetUsersテーブルのId値です
209
- ![イメージ説明](a107a72b2f6d6053ec3f52c9a07c52e3.png)
210
148
 
211
149
 
212
150
  ### 補足情報(FW/ツールのバージョンなど)

2

質問が長すぎたので短く修正

2018/09/30 05:31

投稿

pomu.pomupomu
pomu.pomupomu

スコア18

title CHANGED
File without changes
body CHANGED
@@ -8,18 +8,15 @@
8
8
  DBfirstでの"ADO.NET Entity Data Model"の作成機能を用いてModelを作成し、スキャフォールディング機能を用いてViewとControllerの自動生成をしました。
9
9
 
10
10
  その後、ASP.NET identityを用いて実装したログイン機能を基に、トピックの中のレスの作成をしているのですが、行き詰まったので質問を投稿しました。
11
- 似たような投稿であると思い、3回に分けずに1回でまとめて投稿しましたが、どれかに回答をいただけるだけでもとてもありがたいです。長文ですがよろしくお願いします。
12
11
 
13
12
 
14
13
  ### 発生している問題・エラーメッセージ
15
14
 
16
- 次の画像はトピックの中のレスを新規に作成するためのページなのですが、以下の3つの問題を抱えています。
15
+ 次の画像はトピックの中のレスを新規に作成するためのページなのですが、以下の問題を抱えています。
17
16
 
18
- (1) Topic名について、現在のレスが所属するトピックの名前のみ表示したいのにデータベースに記録されているトピック全件をDropDownListで表示をしてしまう。
19
- (2) DropDownListの先頭にValue=""となる空白を用意したいが、レスのタイトルが全件表示されてしまう。
20
- (3)レスの記入者を現在ログインしているユーザー名で固定したいが、ユーザー名をすべて表示してしまう。また、世の中の目標制作物に類似するものはそもそも「記入者=ログインユーザー名」だというのが自明なので表示してないように思えるので表示しない方法もあればご教授いただけたら幸いです。
17
+ (1) レスの記入者を現在ログインしているユーザー名で固定したいが、ユーザー名をすべて表示してしまう。また、世の中の目標制作物に類似するものはそもそも「記入者=ログインユーザー名」だというのが自明なので表示してないように思えるので表示しない方法もあればご教授いただけたら幸いです。
21
18
 
22
- ![イメージ説明](f08ad8c48bf0d5e34d24cc7bcba0a097.png)![イメージ説明](932997a513cf5db05149f14242f3230c.png)
19
+ ![イメージ説明](f08ad8c48bf0d5e34d24cc7bcba0a097.png)!
23
20
 
24
21
 
25
22
  ### 該当のソースコード
@@ -188,30 +185,8 @@
188
185
  }
189
186
  ```
190
187
  ### 試したこと
188
+
191
189
  (1)
192
- スキャフォールディング機能で実装したIndexでは、現在、ControllerにIdを設定する事でどのトピックの中のレスを見るのか判断できるようにしました。
193
- http://localhost:51822/Topics/Index
194
- 以下はトピック一覧からレスを覗くために記したコードです。
195
-
196
- ``` C#
197
- @Html.ActionLink("Thread", "Index", new { controller = "Responses", id = item.Id })
198
- ```
199
- 上のコードの部分を実行しクリックする事で遷移後のページのURLは
200
- http://localhost:51822/Responses/Index/1
201
- となり、 urlの末尾に現在のレス一覧が所属するidがつくようになりました。
202
- しかし、レス一覧のページ(URLの末尾にidが含まれている)において、次のコードを実行してクリックしても
203
- http://localhost:51822/Responses/Create
204
- という UrlになるためそもそもIdが引き継げないです。
205
- ```c#
206
- <p>
207
- @Html.ActionLink("Create New", "Create", new { id = UrlParameter.Optional })
208
- </p>
209
- ```
210
-
211
- (2)
212
- 調べたのですが、今回のようなModelからデータを引っ張る場合に空白値を加えるものについての記事は見つけられませんでした。
213
-
214
- (3)
215
190
  Controllerを次のように書き換えたところ、次の画像のようにViewで表示されるDropDownListの中身がChar型になってしまいます。
216
191
   return contentを用いてidとnameを表示した時にはハッシュ値のパスとユーザー名が表示できたのでidとnameには問題がないのではと考えています
217
192
  (idとnameにIdentityの情報を格納し、Viewbag.ResOwnerId の値をコメントアウトしている行からその次の行のように書き換えました)

1

説明の追記

2018/07/13 04:22

投稿

pomu.pomupomu
pomu.pomupomu

スコア18

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,7 @@
8
8
  DBfirstでの"ADO.NET Entity Data Model"の作成機能を用いてModelを作成し、スキャフォールディング機能を用いてViewとControllerの自動生成をしました。
9
9
 
10
10
  その後、ASP.NET identityを用いて実装したログイン機能を基に、トピックの中のレスの作成をしているのですが、行き詰まったので質問を投稿しました。
11
+ 似たような投稿であると思い、3回に分けずに1回でまとめて投稿しましたが、どれかに回答をいただけるだけでもとてもありがたいです。長文ですがよろしくお願いします。
11
12
 
12
13
 
13
14
  ### 発生している問題・エラーメッセージ
@@ -212,7 +213,8 @@
212
213
 
213
214
  (3)
214
215
  Controllerを次のように書き換えたところ、次の画像のようにViewで表示されるDropDownListの中身がChar型になってしまいます。
216
+  return contentを用いてidとnameを表示した時にはハッシュ値のパスとユーザー名が表示できたのでidとnameには問題がないのではと考えています
215
- (Viewbag.ResOwnerId の値をコメントアウトしている行からその次の行のように書き換えました)
217
+ (idとnameにIdentityの情報を格納し、Viewbag.ResOwnerId の値をコメントアウトしている行からその次の行のように書き換えました)
216
218
  ```c#
217
219
  // GET: Responses/Create
218
220
  public ActionResult Create()