首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ViewModel在asp.net MVC中正确验证表单?

如何使用ViewModel在asp.net MVC中正确验证表单?
EN

Stack Overflow用户
提问于 2020-05-01 21:45:34
回答 1查看 23关注 0票数 0

这里是I have been following the documentationhere,但是验证属性似乎不起作用。我的RModel中有以下内容:

代码语言:javascript
运行
复制
[RegularExpression(@"^[A-Z]+[a-zA-Z'\s]*$")]
[Required]
[StringLength(10)]
public string FirstName { get; set; }

[Required]
[EmailAddress]
public string Email { get; set; }

在我看来是这样的:

代码语言:javascript
运行
复制
@using (Html.BeginForm("Index", "RHome", FormMethod.Post))
{
    <div class="field form-group col-sm-4">
        <input type="text" id="FirstName" placeholder=" ">
        <label for="FirstName">First Name</label>
        <span asp-validation-for="RModel.FirstName"></span>
    </div>

    <div class="field form-group col-sm-8">
        <input id="Email" placeholder=" ">
        <label for="Email">Email</label>
        <span asp-validation-for="RModel.Email"></span>
    </div>
    . . .
}

我正在使用ViewModel加载多个模型。其他模型与RModel非常相似。我不知道这是否会产生任何影响,但我认为可能会。

代码语言:javascript
运行
复制
public class ViewModelR
{
    public RModel RModel { get; set; }
    public KnowledgeModel KnowledgeModel { get; set; }
}

我只想有服务器和客户端的验证,以防止注入和错误的输入和东西。我该怎么做呢?

更新:我添加了我的视图,现在当我单击提交而没有填写任何一个输入时,我似乎得到了一条暗示[required]正在工作的消息。

代码语言:javascript
运行
复制
The Email: field is required.
The First Name: field is required.

这很好,但是我需要让所有其他的验证工作,这样我才能防止坏值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 22:03:34

我建议您对视图中的每个输入html元素都使用验证消息scafolding。

代码语言:javascript
运行
复制
@Html.ValidationMessageFor(model => model.RHome.FirstName, "", new { @class = "text-danger" })

我希望,你已经在你的视图中添加了至少下面的js。

代码语言:javascript
运行
复制
jquery.validate.unobtrusive.js
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61543700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档