asp.net mvc 5, проверка для не обязательных полей (необязательные поля) - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть форма, которую некоторые поля не нужно заполнять, или необязательные поля в приложении asp.net mvc 5.

Я пробовал это, но предупреждающее сообщение для "этих полейтребуется ", продолжайте показ.

[Required(AllowEmptyStrings = true)]
public string country { get; set; }

adding htmlAttribute
@required = false

Модель данных

public class LoginViewModel
{
    ...

    public string country { get; set; }

    ...
}

public class CountryLists
{
    ...
    public string CountryName { get; set; }
    public string CountryCode { get; set; }
    ...
}

Index.cshtml

@using (Html.BeginForm("Save", "SignUp", FormMethod.Post, new { name = "signUpForms", id = "signUpForm", @class = "registerLogin-form" }))
{
...
    if (Model.MembershipProgram.StsSignUpCountry)
    {
        <div class="form-group col-12">
           @Html.DropDownListFor(m => m.country, 
          new SelectList(Model.CountryLists, "CountryCode", "CountryName"),
          "Select Country",
            new
            {
                id = "select_country",
                @class = "form-control"
            })
        </div>
    }
...
<button type="submit" id="register-submit-btn" class="btn btn-primary pull-right active" name="command" value="Save">
            @ViewBag.JoinNow <i class="m-icon-swapright m-icon-white"></i>
</button>
}

enter image description here

Ответы [ 3 ]

1 голос
/ 01 ноября 2019

Просто сделайте value= false в web.config для ClientValidationEnabled

<appSettings><add key="ClientValidationEnabled" value="false" /></appSettings>
0 голосов
/ 01 ноября 2019

Проблема может быть CountryCode. Проверьте вашу модель, если она является целым числом, тогда она должна выглядеть следующим образом:

 public int? CountryCode{ get; set; }

У вас будет модель с двумя свойствами как минимум

  public int CountryCode{ get; set; }
  public string CountryName{ get; set; }

Вы упомянули в своем коде, как показано ниже

new SelectList(Model.CountryLists, "CountryCode", "CountryName"),
0 голосов
/ 01 ноября 2019

может быть дубликатом: ASP .NET MVC Отключить проверку на стороне клиента на уровне поля

может помочь: если вы используете MVC4 и последнюю версию, вы можете написать еекак

 @{ Html.EnableClientValidation(false); }
 if (Model.MembershipProgram.StsSignUpCountry)
 {
    <div class="form-group col-12">
       @Html.DropDownListFor(m => m.country, 
      new SelectList(Model.CountryLists, "CountryCode", "CountryName"),
      "Select Country",
        new
        {
            id = "select_country",
            @class = "form-control"
        })
    </div>
}
@{ Html.EnableClientValidation(true); }
...