c# - 在 MVC3 中, Controller 如何知道非侵入式验证的结果?

标签 c# asp.net-mvc-3 validation controller

我正在使用 C#MVC3VS2010

我注意到即使验证结果为 false, Controller 方法仍会执行。这使得验证在服务器端毫无用处。除非有办法得到结果。

----- 编辑 -----
这是我如何使用它。做得好吗?至少会显示验证消息,并且文本框会变成红色。

型号:

public class CategoriaModel
{
    [Required(ErrorMessage="Nome é obrigatório!")]
    [StringLength(10, ErrorMessage = "First Name max length is 10")]
    public string Nome { get; set; }



}

查看:

@Html.ValidationSummary(true)
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
@using (Html.BeginForm("Salvar", "Test", FormMethod.Post))
{


    @Html.LabelFor(m => m.Nome)
    @Html.EditorFor(m => m.Nome)
    @Html.ValidationMessageFor(m=>m.Nome)                           


    <input type="submit" value="Salvar" />
}

Controller :

public ActionResult Salvar(CategoriaModel catModel)
        {

            ViewBag.StatusMessage = "Ok!";



            return View("Index");
        }

最佳答案

测试 ModelState.IsValid 属性,但是如果客户端验证失败,则不应调用 Action。检查您是否真的在验证所有模型属性。

关于c# - 在 MVC3 中, Controller 如何知道非侵入式验证的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849010/

相关文章:

css - 通过在 Firefox 中不起作用的 css 在每个页面上打印水印文本和图像

javascript - 使用 JavaScript 进行日期验证

c# - 如何向 CodeContracts 证明 IEnumerable<T>.Single() 永远不会返回 null?

C# 编码(marshal) uint*& 参数

c# - 位图到 int[] 使用 Marshal.Copy()

asp.net-mvc-3 - 如何在 MVC 3 中 Hook jQuery 验证不显眼的错误?

c# - 如何将值从 Controller 传递到 asp.net 中查看?

c# - 在 Windows 中使用 C# 配置扬声器设置有哪些 API?

javascript - jQuery 从所有浏览器获取数字输入

javascript - 动态表单验证 - 在满足所有条件之前进行