首页 > 解决方案 > 如何在 MVC 中使文本框可选

问题描述

我一直在试图弄清楚如何使文本框成为可选。我已经尝试过 javascript 方法 (value).removeAtt('required')。我还尝试从 ViewModel 中删除 [Required] 它可以工作,但是当您输入文本时,它在数据库中显示为空。我还有什么其他方法可以解决这个问题。

视图模型

[Required]
[Display(Name="comment")]
public string comment{get; set;]

控制器

public ActionResult Edit(QuestionToAnswerViewModel questionToAnswerVm)
        {
            var questionToAnswer = _questionAnswerService.GetAnswerById(questionToAnswerVm.QuestionId);

            if (ModelState.IsValid)
            {

                if(questionToAnswerVm.AdditionalComment != null)
                {
                    questionToAnswer.Comment = questionToAnswerVm.AdditionalComment;
                }
                else
                {
                    questionToAnswer.Comment = null;
                }

看法

    <div id ="additionalComment" class="form-group">
        @Html.LabelFor(model => model.AdditionalComment,htmlAttributes: new { @class = "control-label col-md-2"})
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.AdditionalComment,new { @class = "form-control"})

        </div>
    </div

标签: javascriptc#htmlasp.net-mvcmodel-view-controller

解决方案


如果您仍然在 Models/View Models 中指定必需的属性,请在您的模型文件中指定此属性为

public string? comment {get;set;}

您也可以在 application_onstart 事件的 global.asax 文件中指定这一行

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

推荐阅读