Bandingkan kata sandi dan konfirmasi kata sandi di ASP.Net MVC

Apakah mungkin untuk membandingkan teks kotak teks konfirmasi kata sandi dengan @Html.PasswordFor(model=>model.Password)?

@using (Html.BeginForm())
{
    <table>

        <tr>
            <td>@Html.LabelFor(model => model.Password)</td>
            <td>@Html.PasswordFor(model => model.Password)</td>
            <td>@Html.ValidationMessageFor(model => model.Password)</td>
        </tr>
        @*Here I want to take "Confirm Password" and want to compare it with "Password" in View(.cshtml only) as
          I have not taken ConfirmPassword in my model.*@
        <tr>
            <td>
                <input type="submit" value="Create" />
            </td>
        </tr>
    </table>              
}

Tolong sarankan cara atau solusi apa pun,

Cara compare password dan confirm password tanpa mendapatkan properti konfirmasi kata sandi di Model. Terima kasih....


person Vishal Hirapara    schedule 13.02.2014    source sumber


Jawaban (6)


Menggunakan Compare DataAnnotation akan mudah untuk membandingkan kata sandi tetapi jika model dibuat dari database menggunakan NotMapped, Properti yang Tidak Dipetakan Dalam Kerangka Entitas Menggunakan Strategi Kode-Pertama

[Required]
public string Password { get; set; }

[NotMapped] // Does not effect with your database
[Compare("Password")]
public string ConfirmPassword { get; set; }
person Sender    schedule 13.02.2014
comment
Apakah mungkin untuk membandingkan teks kotak teks konfirmasi kata sandi dengan @Html.PasswordFor(model=›model.Password)? - person Vishal Hirapara; 13.02.2014

ubah model Anda untuk memasukkan variabel konfirmasi kata sandi

[Required]
public string Password { get; set; }
[Compare("Password")]
public string ConfirmPassword { get; set; }
person COLD TOLD    schedule 13.02.2014
comment
Apakah mungkin untuk membandingkan teks kotak teks konfirmasi kata sandi dengan @Html.PasswordFor(model=›model.Password)? - person Vishal Hirapara; 13.02.2014

Cukup tambahkan [NotMapped] di atas Properti Konfirmasi kata sandi Anda di Model Data

[NotMapped]
[Required(ErrorMessage = "Confirm Password required")]
[CompareAttribute("NewPassword", ErrorMessage = "Password doesn't match.")]        
public string ConfirmPassowrd { get; set; }

Dengan cara ini, ia tidak akan memeriksa properti ConfirmPassword di tabel DB Anda

person Steve    schedule 02.06.2016

Baru saja mencoba [Compare("field_to_compare")] dan itu juga berfungsi di MVC 5.

person Bogdan Mates    schedule 26.08.2015

Coba tulis javascript untuk itu untuk membandingkan kata sandi...

Tapi DataAnnotation Lebih Diutamakan

person Nilesh Gajare    schedule 13.02.2014
comment
Meskipun itu mungkin cukup untuk membatasi risiko, validasi sisi klien bukanlah validasi sebenarnya... - person Laurent S.; 26.08.2015

Anda dapat membandingkan nilai kotak teks "Kata Sandi" dengan nilai kotak teks "Konfirmasi Kata Sandi" baik di sisi klien maupun sisi server. Solusi yang diberikan oleh orang lain adalah konfirmasi di sisi server. Jika Anda tidak ingin memasukkan "Konfirmasi Kata Sandi" dalam model Anda maka Anda harus membandingkan sisi klien. Ini dapat dilakukan melalui Javascript. Anda dapat menulis kode secara manual untuk membandingkan atau Anda dapat memasukkan skrip berikut ke dalam file .cshtml Anda. (Dengan asumsi Anda menggunakan Visual Studio untuk menulis kode Anda).

<script src="/Scripts/jquery-3.3.1.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

Maka Anda harus membuat bidang seperti di bawah ini:

 <input  data-val="true" data-val-equalto="Password and Confirmation Password must match." data-val-equalto-other="*.Password" data-val-required="Required." id="ConfirmPassword" name ="ConfirmPassword"  type="password" />
<span class="field-validation-valid error" data-valmsg-for="ConfirmPassword" data-valmsg-replace="true"></span>

Ini akan membandingkan kotak teks "Kata Sandi" Anda dengan kotak teks "Konfirmasi Kata Sandi" dan juga menampilkan pesan kesalahan jika nilai di kedua kotak teks tidak cocok, tanpa Anda harus menulis kode tambahan apa pun.

Meskipun demikian, praktik yang baik adalah melakukan validasi sisi klien dan sisi server.

person Omkar    schedule 23.08.2019