javascript - 如何在 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
解决方案
如果您仍然在 Models/View Models 中指定必需的属性,请在您的模型文件中指定此属性为
public string? comment {get;set;}
您也可以在 application_onstart 事件的 global.asax 文件中指定这一行
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
推荐阅读
- c# - datagridview 搜索不显示正确答案
- c++ - 中值滤波器(2D int)c ++中的边界情况
- graph - Flink Gelly 在计算期间更新图
- c++ - Qt C++ 图形视图在单击时获取鼠标位置
- javascript - 如何将 HTML 表单数据添加到 mailto 链接
- firebase - Office 365 高级威胁防护正在标记我的 Firebase 身份验证电子邮件
- c - 字符字 [] 与字符字 [5]
- visual-studio-code - Visual Studio 代码和 GAMS
- c# - 如何在单词标题对象的一行文本中添加带下划线的单词?
- xamarin - Xamarin Forms:以编程方式添加的 AbsoluteLayout 不在 iOS 上呈现