c# - ASP.NET MVC ডাটা টাইপ বৈশিষ্ট্য ব্যবহার করে ইমেল ঠিকানা যাচাইকরণ




asp.net-mvc validation (5)

আপনি RegularExpression গুণাবলী ব্যবহার করতে হবে, কিছু ভালো:

[RegularExpression("^[a-zA-Z0-9_\\.-][email protected]([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$", ErrorMessage = "E-mail is not valid")]

এবং [প্রয়োজনীয়] মুছে ফেলবেন না কারণ [নিয়মিত এক্সপ্রেশন] খালি ক্ষেত্রগুলিতে প্রভাব ফেলবে না।

আমি একটি ইমেইল বৈধতা সঙ্গে কিছু সমস্যা আছে।

আমার মডেল:

[Required(ErrorMessage = "Field can't be empty")]
[DataType(DataType.EmailAddress, ErrorMessage = "E-mail is not valid")]
public string ReceiverMail { get; set; }

আমার দৃষ্টিতে:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail"}) <br />
@Html.ValidationMessageFor(m => m.ReceiverMail)

যখন আপনি খালি ক্ষেত্রটি ছেড়ে যান তখন এটি সঠিকভাবে আমাকে দেখানো হচ্ছে "ক্ষেত্র খালি রাখা যাবে না"। কিন্তু যখন আপনি একটি অবৈধ ইমেল ঠিকানা যেমনঃ "fwenrjfw" পূরণ করেন তখন ফর্মটি "ই-মেইল বৈধ নয়" বলে না।

একটি ইমেল ঠিকানা হিসাবে ইনপুট যাচাই করার জন্য আমি কীভাবে ফর্মটি পেতে পারি? আমি এই সঙ্গে কিছু সাহায্য খুঁজছেন।


আপনি যদি .NET ফ্রেমওয়ার্ক 4.5 ব্যবহার করেন তবে সমাধানটি System.ComponentModel.DataAnnotations ভিতরে বসবাসকারী ইমেল EmailAddressAttribute ব্যবহার করতে হবে।

আপনার কোড অনুরূপ চেহারা উচিত:

[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }

যদি আপনি এখনও ব্যবহার করছেন না। নেট 4.5:

/// <summary>
/// TODO: AFTER WE UPGRADE TO .NET 4.5 THIS WILL NO LONGER BE NECESSARY.
/// </summary>
public class EmailAnnotation : RegularExpressionAttribute
{
    static EmailAnnotation()
    {
        DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(EmailAnnotation), typeof(RegularExpressionAttributeAdapter));
    }

    /// <summary>
    /// from: http://.com/a/6893571/984463
    /// </summary>
    public EmailAnnotation()
        : base(@"^[\w!#$%&'*+\-/=?\^_`{|}~]+(\.[\w!#$%&'*+\-/=?\^_`{|}~]+)*"
            + "@"
            + @"((([\-\w]+\.)+[a-zA-Z]{2,4})|(([0-9]{1,3}\.){3}[0-9]{1,3}))$") { }

    public override string FormatErrorMessage(string name)
    {
        return "E-mail is not valid";
    }
}

তারপর আপনি এটা করতে পারেন:

    public class ContactEmailAddressDto
    {
        public int ContactId { get; set; }
        [Required]
        [Display(Name = "New Email Address")]
        [EmailAnnotation] //**<----- Nifty.**
        public string EmailAddressToAdd { get; set; }
    }

স্ক্রিপ্টগুলি সাধারণত HTML পৃষ্ঠার শেষে লোড করা হয় এবং এমভিসি কেবল বান্ডিল ব্যবহার করার পরামর্শ দেয়। তাই আমার সবচেয়ে ভাল বাজি হল যে আপনার jquery.validate ফাইলগুলি কোন উপায়ে পরিবর্তিত হয়েছে অথবা সর্বশেষ সংস্করণে আপডেট করা হয় না, কারণ তারা ই-মেইল ইনপুট যাচাই করে।

তাই আপনি আপনার নুজেট প্যাকেজটি আপডেট / রিফ্রেশ করতে পারেন অথবা আপনার নিজস্ব ফাংশন লিখতে পারেন।

এখানে একটি উদাহরণ যা আপনি jquery.validate.unobtrusive পরে একটি অতিরিক্ত ফাইলে যুক্ত jquery.validate.unobtrusive :

$.validator.addMethod(
    "email",
    function (value, element) {
        return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
    },
    "This e-mail is not valid"
);

এটি কেবলমাত্র একটি jquery.validate এর অনুলিপি এবং পেস্ট। তবে আপনি নিজের কাস্টম ত্রুটি বার্তা সেট করতে পারেন এবং ক্ষেত্রগুলিতে অতিরিক্ত পদ্ধতি যোগ করতে পারেন যা আপনি কাছাকাছি ভবিষ্যতে যাচাই করতে চাইতে পারেন।


[Required(ErrorMessage = "Please enter Social Email id")]
    [DataType(DataType.EmailAddress)]
    [EmailAddress]
    public string Email { get; set; }




email-validation