0

나는 부트 스트랩 모달 페이지 내가 올바른 방법으로 모든 것을 넣을 때 제대로 작동검증 부트 스트랩 모달 페이지 Asp.net MVC

@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 
} 

에하지만, 예를 들어하지 않았다면 양식을 가지고 내 이름 쓰기 그것 dosent 내게 다시 오류를 줘.

몇 가지 질문이 있습니다. 1 게시하기 전에 입력을 검증 할 수 있습니까? jquery 유효성 검사가 작동하지 않는 것 같습니다.

2 그것은 다시 그것은 내 오류를 표시하지 않는 이유는

3을 게시하기 전에 열려 특정 모달에 올 수 있습니까? 내가 ErrorResource.resx에서이 오류 텍스트를 표시 할

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; } 
} 

:

내 모델입니다.

는 이것이 나의 방법

이가 내 머리 태그 필요한 경우
[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> 

어떤 하나를 변경해야는지 말해 수 있다면 내가 주셔서 감사합니다. 감사

+0

일부 스크립트 파일이 누락되었을 수 있습니다. –

+2

보기 또는 레이아웃에서'jquery- {version} .js','jquery.validate.js' 및'jquery.validate.unobtrusive.js'를 포함해야합니다. 중복 없음) –

+0

감사합니다. 다시 한 번 감사드립니다. 가능한 경우 답변하십시오. 고마워 –

답변

2

당신은 클라이언트 측 유효성 검사를 얻기 위해

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

모두 (<script src="~/Scripts/jquery-1.10.2.min.js"></script> 후) 추가해야합니다.

사이드 노트 :보기 및 레이아웃에서 스크립트 및 CSS 파일을 관리하려면 bundles을 사용하는 것이 좋습니다.