The value 'abc' is not valid for fieldName.
がエラーメッセージとして表示されています。これはデフォルトのエラーメッセージです。私は簡単な方法でそれを上書きしたいと思います。今私が試したもののよう
は
intデータ型の検証asp .net mvc3
[RegularExpression("([1-9][0-9]*)")]
Range(1,int.max,ErrorMessage="enter numeric value")
[Integer(ErrorMessageResourceType = typeof(appName.Resources.abc.Resource), ErrorMessageResourceName = "error_numeric")]
[RegularExpression(@"^\d+$",ErrorMessage="enter numeric value")]
の下にリストされているが、デフォルトのエラーメッセージを変更するには失敗しました。
これを行う最も簡単な方法をお勧めします。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace blueddPES.ViewModels
{
public class ContactViewModel
{
[Integer(ErrorMessage="sdfdsf")]
public int? hp { get; set; }
}
この検証シナリオをカバーするデータ注釈は検索しないでください。私はあなたの前の質問で既に答えたので、整数などの値型でそれを達成することはできません:http://stackoverflow.com/questions/9921067/server-side-validation-of-int-datatypec- asp-net-mvc3。カスタムモデルバインダーが必要なのは、要求値を整数に解析する既定のモデルバインダーであり、失敗した場合、System.Web.Mvcアセンブリのリソースとしてハードコードされた既定のエラーメッセージが追加されるためです。 –
しかし@DarinDimitrov私はこの小さなもののカスタムコードの多くを追加したくないです。カスタムmodelbinderを追加する代わりに、intの代わりに文字列をデータ型として受け取る別のオプションがあります。 – RollerCosta
はい、実際にそのオプションがあります。 –