mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-01-19 09:42:29 +08:00
Making messages of register.cshtml consistent with the User settings (#8301)
This commit is contained in:
committed by
Sébastien Ros
parent
40eca06645
commit
e47aca5914
@@ -126,6 +126,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
|
|
||||||
var shape = _orchardServices.New.Register();
|
var shape = _orchardServices.New.Register();
|
||||||
|
|
||||||
@@ -143,6 +147,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
|
|
||||||
if (ValidateRegistration(userName, email, password, confirmPassword)) {
|
if (ValidateRegistration(userName, email, password, confirmPassword)) {
|
||||||
// Attempt to register the user
|
// Attempt to register the user
|
||||||
@@ -224,6 +232,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
public ActionResult ChangePassword() {
|
public ActionResult ChangePassword() {
|
||||||
var membershipSettings = _membershipService.GetSettings();
|
var membershipSettings = _membershipService.GetSettings();
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
|
|
||||||
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
|
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
|
||||||
.CurrentSite.As<SecuritySettingsPart>()
|
.CurrentSite.As<SecuritySettingsPart>()
|
||||||
@@ -241,6 +253,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
public ActionResult ChangePassword(string currentPassword, string newPassword, string confirmPassword) {
|
public ActionResult ChangePassword(string currentPassword, string newPassword, string confirmPassword) {
|
||||||
var membershipSettings = _membershipService.GetSettings();
|
var membershipSettings = _membershipService.GetSettings();
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
|
ViewData["InvalidateOnPasswordChange"] = _orchardServices.WorkContext
|
||||||
.CurrentSite.As<SecuritySettingsPart>()
|
.CurrentSite.As<SecuritySettingsPart>()
|
||||||
.ShouldInvalidateAuthOnPasswordChanged;
|
.ShouldInvalidateAuthOnPasswordChanged;
|
||||||
@@ -268,7 +284,11 @@ namespace Orchard.Users.Controllers {
|
|||||||
|
|
||||||
var viewModel = _orchardServices.New.ViewModel(
|
var viewModel = _orchardServices.New.ViewModel(
|
||||||
Username: username,
|
Username: username,
|
||||||
PasswordLength: membershipSettings.GetMinimumPasswordLength());
|
PasswordLength: membershipSettings.GetMinimumPasswordLength(),
|
||||||
|
LowercaseRequirement: membershipSettings.GetPasswordLowercaseRequirement(),
|
||||||
|
UppercaseRequirement: membershipSettings.GetPasswordUppercaseRequirement(),
|
||||||
|
SpecialCharacterRequirement: membershipSettings.GetPasswordSpecialRequirement(),
|
||||||
|
NumberRequirement: membershipSettings.GetPasswordNumberRequirement());
|
||||||
|
|
||||||
return View(viewModel);
|
return View(viewModel);
|
||||||
}
|
}
|
||||||
@@ -278,7 +298,11 @@ namespace Orchard.Users.Controllers {
|
|||||||
var membershipSettings = _membershipService.GetSettings();
|
var membershipSettings = _membershipService.GetSettings();
|
||||||
var viewModel = _orchardServices.New.ViewModel(
|
var viewModel = _orchardServices.New.ViewModel(
|
||||||
Username: username,
|
Username: username,
|
||||||
PasswordLength: membershipSettings.GetMinimumPasswordLength());
|
PasswordLength: membershipSettings.GetMinimumPasswordLength(),
|
||||||
|
LowercaseRequirement: membershipSettings.GetPasswordLowercaseRequirement(),
|
||||||
|
UppercaseRequirement: membershipSettings.GetPasswordUppercaseRequirement(),
|
||||||
|
SpecialCharacterRequirement: membershipSettings.GetPasswordSpecialRequirement(),
|
||||||
|
NumberRequirement: membershipSettings.GetPasswordNumberRequirement());
|
||||||
|
|
||||||
if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword)) {
|
if (!ValidateChangePassword(currentPassword, newPassword, confirmPassword)) {
|
||||||
return View(viewModel);
|
return View(viewModel);
|
||||||
@@ -326,7 +350,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
|
|
||||||
var membershipSettings = _membershipService.GetSettings();
|
var membershipSettings = _membershipService.GetSettings();
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
return View();
|
return View();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -341,6 +368,10 @@ namespace Orchard.Users.Controllers {
|
|||||||
|
|
||||||
var membershipSettings = _membershipService.GetSettings();
|
var membershipSettings = _membershipService.GetSettings();
|
||||||
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
ViewData["PasswordLength"] = membershipSettings.GetMinimumPasswordLength();
|
||||||
|
ViewData["LowercaseRequirement"] = membershipSettings.GetPasswordLowercaseRequirement();
|
||||||
|
ViewData["UppercaseRequirement"] = membershipSettings.GetPasswordUppercaseRequirement();
|
||||||
|
ViewData["SpecialCharacterRequirement"] = membershipSettings.GetPasswordSpecialRequirement();
|
||||||
|
ViewData["NumberRequirement"] = membershipSettings.GetPasswordNumberRequirement();
|
||||||
|
|
||||||
ValidatePassword(newPassword);
|
ValidatePassword(newPassword);
|
||||||
|
|
||||||
|
|||||||
@@ -3,5 +3,17 @@
|
|||||||
public static int GetMinimumPasswordLength(this IMembershipSettings membershipSettings) {
|
public static int GetMinimumPasswordLength(this IMembershipSettings membershipSettings) {
|
||||||
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.MinimumPasswordLength : 7;
|
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.MinimumPasswordLength : 7;
|
||||||
}
|
}
|
||||||
|
public static bool GetPasswordLowercaseRequirement(this IMembershipSettings membershipSettings) {
|
||||||
|
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordLowercaseRequirement : false;
|
||||||
|
}
|
||||||
|
public static bool GetPasswordUppercaseRequirement(this IMembershipSettings membershipSettings) {
|
||||||
|
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordUppercaseRequirement : false;
|
||||||
|
}
|
||||||
|
public static bool GetPasswordNumberRequirement(this IMembershipSettings membershipSettings) {
|
||||||
|
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordNumberRequirement : false;
|
||||||
|
}
|
||||||
|
public static bool GetPasswordSpecialRequirement(this IMembershipSettings membershipSettings) {
|
||||||
|
return membershipSettings.EnableCustomPasswordPolicy ? membershipSettings.EnablePasswordSpecialRequirement : false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,28 @@
|
|||||||
@model dynamic
|
@model dynamic
|
||||||
|
@{
|
||||||
|
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)Model.PasswordLength).Text;
|
||||||
|
var additionalRequirementsMessage = new List<string>();
|
||||||
|
if ((bool)Model.LowercaseRequirement) {
|
||||||
|
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)Model.UppercaseRequirement) {
|
||||||
|
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)Model.NumberRequirement) {
|
||||||
|
additionalRequirementsMessage.Add(T("one number").Text);
|
||||||
|
}
|
||||||
|
if ((bool)Model.SpecialCharacterRequirement) {
|
||||||
|
additionalRequirementsMessage.Add(T("one special character").Text);
|
||||||
|
}
|
||||||
|
if (additionalRequirementsMessage.Count() > 0) {
|
||||||
|
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
|
||||||
|
}
|
||||||
|
requirementsMessage += ".";
|
||||||
|
}
|
||||||
|
|
||||||
<h1>@Html.TitleForPage(T("Change Expired Password"))</h1>
|
<h1>@Html.TitleForPage(T("Change Expired Password"))</h1>
|
||||||
<p>@T("Your password has expired. Use the form below to change your password.")</p>
|
<p>@T("Your password has expired. Use the form below to change your password.")</p>
|
||||||
<p>@T.Plural("The password can't be empty.", "Passwords are required to be a minimum of {0} characters in length.", (int)Model.PasswordLength)</p>
|
<p>@requirementsMessage</p>
|
||||||
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").Text)
|
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").Text)
|
||||||
@using (Html.BeginFormAntiForgeryPost()) {
|
@using (Html.BeginFormAntiForgeryPost()) {
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|||||||
@@ -1,31 +1,51 @@
|
|||||||
@model dynamic
|
@model dynamic
|
||||||
|
@{
|
||||||
|
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
|
||||||
|
var additionalRequirementsMessage = new List<string>();
|
||||||
|
if ((bool)ViewData["LowercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["UppercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["NumberRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one number").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["SpecialCharacterRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one special character").Text);
|
||||||
|
}
|
||||||
|
if (additionalRequirementsMessage.Count() > 0) {
|
||||||
|
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
|
||||||
|
}
|
||||||
|
requirementsMessage += ".";
|
||||||
|
}
|
||||||
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
|
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
|
||||||
<p>@T("Use the form below to change your password.")</p>
|
<p>@T("Use the form below to change your password.")</p>
|
||||||
<p>@T.Plural("The password can't be empty.", "New passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
|
<p>@requirementsMessage</p>
|
||||||
@if ((bool)ViewData["InvalidateOnPasswordChange"]) {
|
@if ((bool)ViewData["InvalidateOnPasswordChange"]) {
|
||||||
<p>@T("After changing the password you will be required to login anew.")</p>
|
<p>@T("After changing the password you will be required to login anew.")</p>
|
||||||
}
|
}
|
||||||
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
|
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
|
||||||
@using (Html.BeginFormAntiForgeryPost()) {
|
@using (Html.BeginFormAntiForgeryPost()) {
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>@T("Account Information")</legend>
|
<legend>@T("Account Information")</legend>
|
||||||
<div>
|
<div>
|
||||||
<label for="currentPassword">@T("Current password:")</label>
|
<label for="currentPassword">@T("Current password:")</label>
|
||||||
@Html.Password("currentPassword")
|
@Html.Password("currentPassword")
|
||||||
@Html.ValidationMessage("currentPassword")
|
@Html.ValidationMessage("currentPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="newPassword">@T("New password:")</label>
|
<label for="newPassword">@T("New password:")</label>
|
||||||
@Html.Password("newPassword")
|
@Html.Password("newPassword")
|
||||||
@Html.ValidationMessage("newPassword")
|
@Html.ValidationMessage("newPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="confirmPassword">@T("Confirm new password:")</label>
|
<label for="confirmPassword">@T("Confirm new password:")</label>
|
||||||
@Html.Password("confirmPassword")
|
@Html.Password("confirmPassword")
|
||||||
@Html.ValidationMessage("confirmPassword")
|
@Html.ValidationMessage("confirmPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="primaryAction" type="submit">@T("Change Password")</button>
|
<button class="primaryAction" type="submit">@T("Change Password")</button>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
}
|
}
|
||||||
@@ -1,23 +1,43 @@
|
|||||||
@model dynamic
|
@model dynamic
|
||||||
|
@{
|
||||||
|
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
|
||||||
|
var additionalRequirementsMessage = new List<string>();
|
||||||
|
if ((bool)ViewData["LowercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["UppercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["NumberRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one number").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["SpecialCharacterRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one special character").Text);
|
||||||
|
}
|
||||||
|
if (additionalRequirementsMessage.Count() > 0) {
|
||||||
|
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
|
||||||
|
}
|
||||||
|
requirementsMessage += ".";
|
||||||
|
}
|
||||||
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
|
<h1>@Html.TitleForPage(T("Change Password").ToString()) </h1>
|
||||||
<p>@T("Use the form below to change your password.")</p>
|
<p>@T("Use the form below to change your password.")</p>
|
||||||
<p>@T.Plural("The password can't be empty.", "New passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
|
<p>@requirementsMessage</p>
|
||||||
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
|
@Html.ValidationSummary(T("Password change was unsuccessful. Please correct the errors and try again.").ToString())
|
||||||
@using (Html.BeginFormAntiForgeryPost()) {
|
@using (Html.BeginFormAntiForgeryPost()) {
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>@T("Account Information")</legend>
|
<legend>@T("Account Information")</legend>
|
||||||
<div>
|
<div>
|
||||||
<label for="newPassword">@T("New password:")</label>
|
<label for="newPassword">@T("New password:")</label>
|
||||||
@Html.Password("newPassword")
|
@Html.Password("newPassword")
|
||||||
@Html.ValidationMessage("newPassword")
|
@Html.ValidationMessage("newPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="confirmPassword">@T("Confirm new password:")</label>
|
<label for="confirmPassword">@T("Confirm new password:")</label>
|
||||||
@Html.Password("confirmPassword")
|
@Html.Password("confirmPassword")
|
||||||
@Html.ValidationMessage("confirmPassword")
|
@Html.ValidationMessage("confirmPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="primaryAction" type="submit">@T("Change Password")</button>
|
<button class="primaryAction" type="submit">@T("Change Password")</button>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
}
|
}
|
||||||
@@ -1,32 +1,52 @@
|
|||||||
<h1>@Html.TitleForPage(T("Create a New Account").ToString())</h1>
|
@{
|
||||||
|
var requirementsMessage = T.Plural("The password can't be empty", "Passwords are required to be a minimum of {0} characters in length", (int)ViewData["PasswordLength"]).Text;
|
||||||
|
var additionalRequirementsMessage = new List<string>();
|
||||||
|
if ((bool)ViewData["LowercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one lowercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["UppercaseRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one uppercase letter").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["NumberRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one number").Text);
|
||||||
|
}
|
||||||
|
if ((bool)ViewData["SpecialCharacterRequirement"]) {
|
||||||
|
additionalRequirementsMessage.Add(T("one special character").Text);
|
||||||
|
}
|
||||||
|
if (additionalRequirementsMessage.Count() > 0) {
|
||||||
|
requirementsMessage = T("{0} and must contain at least {1}", requirementsMessage, string.Join(", ", additionalRequirementsMessage)).Text;
|
||||||
|
}
|
||||||
|
requirementsMessage += ".";
|
||||||
|
}
|
||||||
|
<h1>@Html.TitleForPage(T("Create a New Account").ToString())</h1>
|
||||||
<p>@T("Use the form below to create a new account.")</p>
|
<p>@T("Use the form below to create a new account.")</p>
|
||||||
<p>@T.Plural("The password can't be empty.", "Passwords are required to be a minimum of {0} characters in length.", (int)ViewData["PasswordLength"])</p>
|
<p>@requirementsMessage</p>
|
||||||
@Html.ValidationSummary(T("Account creation was unsuccessful. Please correct the errors and try again.").ToString())
|
@Html.ValidationSummary(T("Account creation was unsuccessful. Please correct the errors and try again.").ToString())
|
||||||
@using (Html.BeginFormAntiForgeryPost(Url.Action("Register", new { ReturnUrl = Request.QueryString["ReturnUrl"] }))) {
|
@using (Html.BeginFormAntiForgeryPost(Url.Action("Register", new { ReturnUrl = Request.QueryString["ReturnUrl"] }))) {
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>@T("Account Information")</legend>
|
<legend>@T("Account Information")</legend>
|
||||||
<div>
|
<div>
|
||||||
<label for="username">@T("Username:")</label>
|
<label for="username">@T("Username:")</label>
|
||||||
@Html.TextBox("username")
|
@Html.TextBox("username")
|
||||||
@Html.ValidationMessage("username")
|
@Html.ValidationMessage("username")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="email">@T("Email:")</label>
|
<label for="email">@T("Email:")</label>
|
||||||
@Html.TextBox("email")
|
@Html.TextBox("email")
|
||||||
@Html.ValidationMessage("email")
|
@Html.ValidationMessage("email")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="password">@T("Password:")</label>
|
<label for="password">@T("Password:")</label>
|
||||||
@Html.Password("password")
|
@Html.Password("password")
|
||||||
@Html.ValidationMessage("password")
|
@Html.ValidationMessage("password")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="confirmPassword">@T("Confirm password:")</label>
|
<label for="confirmPassword">@T("Confirm password:")</label>
|
||||||
@Html.Password("confirmPassword")
|
@Html.Password("confirmPassword")
|
||||||
@Html.ValidationMessage("confirmPassword")
|
@Html.ValidationMessage("confirmPassword")
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="primaryAction" type="submit">@T("Register")</button>
|
<button class="primaryAction" type="submit">@T("Register")</button>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user