3

今、私はこのようなモデルを持っています:

namespace TestMVC.Models.ViewModel
{
   public partial class User
    {

        public string Name { get; set; }
        public int Age { get; set; }
        public string Email { get; set; }

    }

    [MetadataType(typeof(UserMetaData))]
    public partial class User
    {


    }

public class UserMetaData
{
    [Display(Name = "Name")]
    public string Name { get; set; }
    [Display(Name = "Age")]
    public int Age { get; set; }
    [Display(Name = "Email")]
    [RegularExpression(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "The email is invalid")]
    public string Email { get; set; }
}
}

そして私はこのような方法を持っています:

   public ActionResult ValidCheck()
    {
        ModelState.AddModelError("error", "error");
        Models.ViewModel.User model = new Models.ViewModel.User();
        model.Age = 12;
        model.Name = "Andy He";
        model.Email = "123";
        //TryValidateModel(model);
     }

メソッドを介してモデルが有効かどうかを確認し、エラー メッセージを取得したい ,TryValideModel を使用しようとしましたが、モデルが有効であるという結果しか取得できず、エラー メッセージを取得できません ,メソッドでできることはありますかこれ?手伝ってくれませんか?

4

1 に答える 1

8

特定のキーのエラーを追加するには。このように使います。 ModelState.AddModelError("yourModelPropety", "error"); ここでは、特定のキーのモデル エラーを設定しています。

ModelState.IsValid プロパティを使用します。ModelState にモデル エラーが追加されているかどうかがわかります。ModelState.Isvalid

このようにしてみてください。

 

ModelState.AddModelError("Email ", "error");  here you are setting model error for particular key. 

if(!ModelState.IsValid)
{
  // do something to display errors .  
     foreach (ModelState modelState in ViewData.ModelState.Values) {
                foreach (ModelError error in modelState.Errors) {
                  DoSomethingWith(error);
            }
        }
}
于 2013-03-18T08:42:32.337 に答える