質問編集履歴
3
情報の削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
|
17
17
|
(1) レスの記入者を現在ログインしているユーザー名で固定したいが、ユーザー名をすべて表示してしまう。また、世の中の目標制作物に類似するものはそもそも「記入者=ログインユーザー名」だというのが自明なので表示してないように思えるので表示しない方法もあればご教授いただけたら幸いです。
|
18
18
|
|
19
|
-
!
|
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,
|
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
|
-
|
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
|
-

|
208
|
-
表示されているchar型でのDropDownListの正体は、 ASP.NET Identityで用意したASPNetUsersテーブルのId値です
|
209
|
-

|
210
148
|
|
211
149
|
|
212
150
|
### 補足情報(FW/ツールのバージョンなど)
|
2
質問が長すぎたので短く修正
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
|
-
次の画像はトピックの中のレスを新規に作成するためのページなのですが、以下の
|
15
|
+
次の画像はトピックの中のレスを新規に作成するためのページなのですが、以下の問題を抱えています。
|
17
16
|
|
18
|
-
(1) Topic名について、現在のレスが所属するトピックの名前のみ表示したいのにデータベースに記録されているトピック全件をDropDownListで表示をしてしまう。
|
19
|
-
(2) DropDownListの先頭にValue=""となる空白を用意したいが、レスのタイトルが全件表示されてしまう。
|
20
|
-
(
|
17
|
+
(1) レスの記入者を現在ログインしているユーザー名で固定したいが、ユーザー名をすべて表示してしまう。また、世の中の目標制作物に類似するものはそもそも「記入者=ログインユーザー名」だというのが自明なので表示してないように思えるので表示しない方法もあればご教授いただけたら幸いです。
|
21
18
|
|
22
|
-
!
|
19
|
+
!
|
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
説明の追記
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()
|