質問編集履歴

2

解決方法の追加

2020/09/18 07:05

投稿

syugaaburesu
syugaaburesu

スコア35

test CHANGED
File without changes
test CHANGED
@@ -303,3 +303,77 @@
303
303
  asp.net WebApplication mvc
304
304
 
305
305
  VisualStudio2015
306
+
307
+
308
+
309
+
310
+
311
+ ### 解決方法 modelにDataAnnotationsを追加する
312
+
313
+ ```C#
314
+
315
+ using System;
316
+
317
+ using System.Collections.Generic;
318
+
319
+ using System.ComponentModel.DataAnnotations;
320
+
321
+ using System.ComponentModel;
322
+
323
+
324
+
325
+ namespace ProductManage.Models
326
+
327
+ {
328
+
329
+ public class Insert
330
+
331
+ {
332
+
333
+ [Required(ErrorMessage = "商品名は必須入力です")]
334
+
335
+ [StringLength(16, ErrorMessage = "16文字以内で入力してください")]
336
+
337
+ public string productName { get; set; }
338
+
339
+
340
+
341
+ [Range(1, 3, ErrorMessage = "オプションは入力必須です")]
342
+
343
+ public int option { get; set; }
344
+
345
+
346
+
347
+ [RegularExpression(@"[0-9]+", ErrorMessage = "半角数字のみ入力できます")]
348
+
349
+ public int price { get; set; }
350
+
351
+ }
352
+
353
+ }
354
+
355
+ ```
356
+
357
+ 対象のcontrollerで下記を追加
358
+
359
+ ```C#
360
+
361
+ if (ModelState.IsValid)
362
+
363
+ {
364
+
365
+ //ここに正常時のコードを記載
366
+
367
+ }
368
+
369
+ ```
370
+
371
+ HTMLで
372
+
373
+ ```HTML
374
+
375
+ @Html.ValidationMessageFor(model => model.productName)
376
+
377
+ ```
378
+
379
+ を追加して無事表示されるようになりました。

1

試したことの追記

2020/09/18 07:05

投稿

syugaaburesu
syugaaburesu

スコア35

test CHANGED
File without changes
test CHANGED
@@ -262,9 +262,29 @@
262
262
 
263
263
  ### 試したこと
264
264
 
265
-
265
+ @using(html.beginform)ではなくhtmlのformで対処する
266
+
266
-
267
+
268
+
269
+ 入力チェックは行われたがcontroller側が反応しなかった恐らく
270
+
271
+ [HttpGet]
272
+
273
+ public ActionResult add()
274
+
275
+ {
276
+
277
+ return View();
278
+
279
+ }
280
+
281
+ の方に行ってしまっていると考えています。
282
+
283
+ 根拠としては足りないですがブレイクポイントを上記コードの下の本来行くはずの所につけて反応しなかったからです。
284
+
285
+
286
+
267
- 出来そうな手段を考えて検索しましたが該当するものが見つかりませんでした。
287
+ 上記以外で出来そうな手段を考えて検索しましたが該当するものが見つかりませんでした。
268
288
 
269
289
  考えた手段として
270
290