1

オブジェクトを含むviewModelがあります。そのオブジェクトのカスタムエディタテンプレートを定義しました。これにより、そのオブジェクトの各子を編集できます。子の値はサーバー側では必要ありません(したがって、必須の注釈はありません)が、ユーザーがこの特定の入力に到達した場合は、必須である必要があります。

POSTメソッドでこれらの子オブジェクト(viewModel内)の値を検査し、それらがnullの場合にビューにエラーを返す方法はありますか?

私はRazorを使用しています。

4

2 に答える 2

1

サーバー側では、アクションでクラスの子オブジェクトを確認できます。

[HttpPost]
public ActionResult Edit(MyClass myClass)
{
    if (myClass.Children.Any(child => child == null))
    {
        foreach(var child in myClass.Children
            .Where(child => child == null)
            .Select((item, index) => new { Item = item, Index = index))
        {

             ModelState.AddModelError(
                 string.Format("Children[{0}]", child.Index), 
                 "Must be required");
        }

        return this.View("...");
    }
}
于 2013-03-12T00:44:40.847 に答える
0

あなたができることは、(そのフィールドの変更時に)ユーザー入力をチェックする関数を書くことです

ユーザーがこの特定の入力に到達した場合

ユーザーがその特定の入力に到達したら、jQuery を使用して@class = "required"HTML 属性をオブジェクトに追加します。その瞬間からrequired

ここを見てください: これは、いくつかの条件に基づく必須フィールドの jQuery バリデーターです。これはまさにあなたが求めているものだと思います

編集

もう 1 つのオプションは、AJAX を使用してサーバーに戻り、探しているものを確認することです。例はこちら

これが理にかなっていて、あなたの助けになることを願っています.

于 2013-03-11T23:10:53.413 に答える