2

Nancy にサンプル アプリがあり、リクエストの検証に問題があります。

BindAndValidate 拡張機能を備えた FluentValidator を使用しています。たとえば、私はモデルを持っています:

public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

そしてモジュール:

Post["/create-user"] = m => this.BindAndValidate<User>()); 

また、クライアント アプリがパラメータ Name:"foo, Age:"some-string"を使用してモジュールを呼び出すと、ナンシーが例外をスローするという問題があります。

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: some-string  is not a valid value for Int32. ---> System.FormatException: Input string was not in a correct format.

パラメータによる例外の回避策はありますか (「プロパティの年齢が正しい形式ではありませんでした」)。

ありがとう

4

2 に答える 2

-2

バインドする前に、Age が int であるかどうかを確認し、そうである場合は検証を試みることができます。このようなもの:

int age;
bool isInt = int.TryParse(Request.Form("Age"), out age);

if (isInt)
{
   this.BindAndValidate<User>();
}

それが役に立てば幸い。

于 2014-07-23T18:57:55.130 に答える