asp.net-mvc - Bootstrap 模式页面 Asp.net MVC 验证

标签 asp.net-mvc forms twitter-bootstrap jquery-validate unobtrusive-validation

我有一个表单,它位于 Bootstrap 模式页面

 @using (Html.BeginForm("Create", "Request"))
 {
   @Html.AntiForgeryToken()
   <div class="form-group">

      <div class="col-md-10">

        @Html.EditorFor(model => model.Request.FirstName, new { htmlAttributes = new { @class = "form-control" } })

        @Html.ValidationMessageFor(model => model.Request.FirstName, "", new { @class = "text-danger" , placeholder = "FirstName" }) 

      </div>

   </div>
   //Omit other form groups for summary
 }

当我以正确的方式放置所有内容时,它会正常工作,但如果我没有写下我的名字,它不会给我返回错误。

我有一些问题: 1 是否可以在发布之前验证输入?,jquery 验证似乎不起作用?

2 是否可以返回到发布之前打开的特定模式

3 为什么它不显示我的错误?

这是我的模型:

public class Request
{
    //pkey
    public virtual int Id { get; set; }
    //Fkey
    public virtual int TourId { get; set; }

    [Required]
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")]
    public virtual string FirstName { get; set; }


    [Required]
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")]
    public virtual string LastName { get; set; }

    [Required]
    [EmailAddress(ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "Email")]
    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")]
    public virtual string Email { get; set; }

    [Required]
    public virtual string Phone { get; set; }

    [MaxLength(100000000, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")]
    public virtual string Comment { get; set; }


    public virtual bool FrequentTraveler { get; set; }

    [Required]
    [Range(1, 500000)]
    public virtual int TravelersCount { get; set; }

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
    public virtual string Date { get; set; }

    public virtual bool ContactTimePreference { get; set; }

    [MaxLength(150, ErrorMessageResourceType = typeof(ErrorResource), ErrorMessageResourceName = "CheckLenght")]
    public virtual string Country { get; set; }


    public virtual bool Archived { get; set; }
}

我想显示 ErrorResource.resx 中的错误文本。

这是我的创建方法

   [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Id,TourId,FirstName,LastName,Email,Phone,Comment,FrequentTraveler,TravelersCount,Date,ContactTimePreference,Country,Archived")] Request request)
    {
        if (ModelState.IsValid)
        {
            db.Requests.Add(request);
            db.SaveChanges();

            TempData["ResultMessage"] = "Form  Posted successfully.";
            return RedirectToAction("Index", "Tour", new { country = TempData["Country"] });
        }
        TempData["ResultMessage"] = "Try Again!";
        return RedirectToAction("Index", "Tour", new { country = TempData["Country"] });
    }

如果需要的话,这是我的头标签:

<html>
 <head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
  <link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
  <script src="~/Scripts/modernizr-2.6.2.js"></script>
</head>
 <body>
      <script src="~/Scripts/jquery-1.10.2.min.js"></script>
      <script src="~/Scripts/bootstrap.min.js"></script>
      <script src="~/scripts/myjs.js"></script>
 </body>
</html>

如果有人能告诉我应该更改哪些内容,我将不胜感激。谢谢

最佳答案

您需要添加两者(在 <script src="~/Scripts/jquery-1.10.2.min.js"></script> 之后)

<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

为了获得客户端验证。

旁注:最好使用 bundles管理 View 和布局中的脚本和 CSS 文件。

关于asp.net-mvc - Bootstrap 模式页面 Asp.net MVC 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38265042/

相关文章:

php - 仅当php中没有 "%"登录时如何显示表单元素

javascript - 将 Offcanvas 与 Bootstrap 3 导航栏固定顶部一起使用

jquery - 获取 popover data-content 中 HTML 标签的元素

c# - 通过 ASP.NET 应用程序上传大文件(最大 100gb)

c# - ASP MVC : Weird white spaces on the textbox whenever i try to edit a record

c# - 基于 Active Directory 为网站开发登录页面

css - 移除 Bootstrap WELL 左右填充

asp.net-mvc - 从 [HttpGet] 操作重定向到 [HttpPost] 操作 - MVC3

python - Python3 中的 cgi.FieldStorage() 和 .has_key()

c++ - 在 Windows 窗体应用程序上检查 Tic Tac Toe 游戏的获胜者 - C++