在发送到控制器 MVC 之前强制文本输入所有大写字母



我在 Index(( 视图中有这个文本框,供用户输入一个 ID,该 ID 被发送到控制器方法以根据 ID 在数据库中查找顾问,但我想强制输入在发送到控制器之前将其大写。我知道我可以在控制器方法中将其大写,但是如果用户最初以小写形式输入它,则创建的 Consultant 对象具有小写 ID,并且出于某种原因,我用于在不同视图中编辑顾问详细信息的模式弹出窗口 ViewConsultant,正在拉入原始小写 ID 而不是附加到模型的大写 ID。我希望这个问题是有意义的,如果我没有明确我的问题是什么,我可以澄清。

<input type="text" class="form-control " id="ID" name="ID" style="vertical-align:bottom; text-transform:uppercase;" />

通过小写和大写 ID,我想你在谈论属性名称? 我倾向于在我的视图上使用的一种技术是,它在主视图的根上有一个复杂的属性,对模态有一个复杂的属性(或者模态的至少一个复杂属性(。

我执行以下操作:

public class RootViewModel
{
public long ID { get; set; }
public string OtherData { get;set; }
public ModalDetails ModalDetails { get;set; }
}
public class ModalDetails
{
public long ID { get; set; }
public string OtherData { get; set; }
}

在UI中,您可以执行以下操作:

<form>
@Html.HiddenFor(m => m.ID)
</form>
<div class="modal fade">
..
@Html.HiddenFor(m => m.ModalDetails.ID)
</div>

这样,模态数据与主视图数据是分开的。 如果模态周围有窗体,您还可以检测到模态回发,因为 ModalDetails 记录将在回发时填充,以及类似的事情。

最新更新