回答編集履歴
6
追記&訂正
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
どうしても JavaScript で送信したいということなら、以下の記事の応用でできるかもしれません(まだ思い付きレベルです。
|
33
|
+
どうしても JavaScript で送信したいということなら、以下の記事の応用でできるかもしれません(まだ思い付きレベルです。Edit 機能を実装するのはかなりの茨の道になりそうな予感がしますが)。
|
34
34
|
|
35
35
|
|
36
36
|
|
5
追記&訂正
test
CHANGED
@@ -30,7 +30,11 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
+
どうしても JavaScript で送信したいということなら、以下の記事の応用でできるかもしれません(まだ思い付きレベルです。Create 機能を実装するのはかなりの茨の道になりそうな予感がしますが)。
|
34
|
+
|
35
|
+
|
36
|
+
|
33
|
-
|
37
|
+
以下の記事のアプリは ASP.NET Core 3.1 MVC ですが、.NET Framework 版の MVC5 でも同じことはできます。
|
34
38
|
|
35
39
|
|
36
40
|
|
4
追記
test
CHANGED
@@ -23,3 +23,31 @@
|
|
23
23
|
|
24
24
|
|
25
25
|
は、JavaScript による送信でもコントローラーには制御が飛んでくるのだから、index にリダイレクトされないのは if(ModelState.IsValid) が true にならないから以外の原因はなさそうですが、その理由は質問に提供されている情報では分かりません。分かるように質問を書いてくれれば考えようもありますが・・・
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
**【追記】**
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
どうしても JavaScript で送信したいということなら、以下の記事の応用でできるかもしれません。アプリは ASP.NET Core 3.1 MVC ですが、.NET Framework 版の MVC5 でも同じことはできます。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
jQuery ajax で部分ビューの呼出・表示
|
38
|
+
|
39
|
+
[http://surferonwww.info/BlogEngine/post/2020/03/07/use-jquery-ajax-to-request-and-render-partial-view.aspx](http://surferonwww.info/BlogEngine/post/2020/03/07/use-jquery-ajax-to-request-and-render-partial-view.aspx)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
jQuery ajax を使っている点、CSRF 防止用のトークンを含むフォームデータを jQuery の .serialize() メソッドを使って取得しそれを data パラメータに設定して送信している点、応答は部分ビューとして返している点に注目してください。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
上の記事のサンプルではユーザー入力はないのでその検証関係のコードは実装してませんが、Model を定義して追加できると思います(要件次第ですが)。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
ただ、やはり、クライアント側での検証は普通に submit した時のようにはいかないと思いますが。
|
3
訂正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
どのように検証機能を実装しているのか書いてないのでわかりませんが、標準で ASP.NET MVC に実装されているデータアノテーションによるクライアントサイドの検証のことを言っているのであれば、JavaScript で送信している限り働かないと思います。サーバー側はモデルバインディングがされていれば働くはずですが、その前にエラーでモデルバインディングがされてないとダメでしょう(その場合でも ModelState.IsValid は false になるはずですが)
|
13
|
+
どのように検証機能を実装しているのか書いてないのでわかりませんが、標準で ASP.NET MVC に実装されているデータアノテーションによるクライアントサイドの検証のことを言っているのであれば、JavaScript で(質問のコードのように ajax で)送信している限り働かないと思います。サーバー側はモデルバインディングがされていれば働くはずですが、その前にエラーでモデルバインディングがされてないとダメでしょう(その場合でも ModelState.IsValid は false になるはずですが)
|
14
14
|
|
15
15
|
|
16
16
|
|
2
訂正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
JavaScript で送信するのでなく、普通に input type="submit" ボタンのクリックなどで送信
|
5
|
+
JavaScript で送信するのでなく、普通に input type="submit" ボタンのクリックなどで送信すれば「追加した情報が反映されません」以外は問題なく、期待通り検証がかかり、検証 OK の時は index にリダイレクトされるのですよね。
|
6
6
|
|
7
7
|
|
8
8
|
|
1
訂正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
どのように検証機能を実装しているのか書いてないのでわかりませんが、標準で ASP.NET MVC に実装されているデータアノテーションによる検証の
|
13
|
+
どのように検証機能を実装しているのか書いてないのでわかりませんが、標準で ASP.NET MVC に実装されているデータアノテーションによるクライアントサイドの検証のことを言っているのであれば、JavaScript で送信している限り働かないと思います。サーバー側はモデルバインディングがされていれば働くはずですが、その前にエラーでモデルバインディングがされてないとダメでしょう(その場合でも ModelState.IsValid は false になるはずですが)
|
14
14
|
|
15
15
|
|
16
16
|
|