2011-05-16 16 views
5

मैं ViewModel निम्नलिखित है:ASP.NET MVC3 मान्यता समस्या

public class Bulletin1ViewModel 
    { 
     [Required] 
     public String NumberDelegations { get; set; } 

     [Required] 
     public String TravelPlans { get; set; } 
    } 

कौन सा मैं अपने दृश्य में उपयोग करना चाहते हैं:

 @using ErasProject.Models 
     @model ErasProject.Models.Bulletin1ViewModel 
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.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()) 
     { 
      @Html.ValidationSummary(true) 

      <fieldset> 

      <p> 
      @Html.EditorFor(model => model.NumberDelegations) 
      @Html.ValidationMessageFor(model => model.NumberDelegations) 
      </p> 

      <p> 
      @Html.EditorFor(model => model.TravelPlans) 
      @Html.ValidationMessageFor(model => model.TravelPlans) 
      </p> 

      <p> 
      <input type="submit" value="Submit" /> 
      </p> 

      </fieldset> 

    } 

लेकिन मेरी मान्यता ट्रिगर नहीं कर रहा है। न तो क्लाइंट-साइड और न ही सर्वर-साइड। किसी को भी एक विचार हो सकता है क्यों? धन्यवाद।

उत्तर

5

तुम दोनों jQuery और jQuery मान्यकरण प्लगइन (और वैकल्पिक, विनीत पुस्तकालय)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"   type="text/javascript"></script> 
<script src="http://ajax.microsoft.com/ajax/jQuery.Validate/1.7/jQuery.Validate.min.js" type="text/javascript"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js" type="text/javascript"></script> 

इतना जोड़ने की जरूरत है, अपने दृश्य के रूप में हो जाएगा:

@using ErasProject.Models 
@model ErasProject.Models.Bulletin1ViewModel 

<script src="jquery.min.js"></script> 
<script src="jQuery.Validate.min.js"></script> 
<script src="jquery.validate.unobtrusive.min.js"></script> 

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary(true) 

    <fieldset> 

    <p> 
    @Html.EditorFor(model => model.NumberDelegations) 
    @Html.ValidationMessageFor(model => model.NumberDelegations) 
    </p> 

    <p> 
    @Html.EditorFor(model => model.TravelPlans) 
    @Html.ValidationMessageFor(model => model.TravelPlans) 
    </p> 

    <p> 
    <input type="submit" value="Submit" /> 
    </p> 

    </fieldset> 

} 

बस जोड़ा अपने ऑब्जेक्ट और Add बनाया गया कार्य:

public ActionResult Add() 
{ 
    return View(); 
} 

और Create टेम्पलेट और Bulletin1ViewModel वर्ग कि इस तरह दिखना का उपयोग कर एक दृश्य बनाया:

@model WebApp_MVC3.Models.Bulletin1ViewModel 

@{ 
    ViewBag.Title = "Add"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Add</h2> 

<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()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>Bulletin1ViewModel</legend> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.NumberDelegations) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.NumberDelegations) 
      @Html.ValidationMessageFor(model => model.NumberDelegations) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.TravelPlans) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.TravelPlans) 
      @Html.ValidationMessageFor(model => model.TravelPlans) 
     </div> 

     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

अधिक कुछ भी करने के बिना, परिणाम है:

original file

enter image description here

मैं जावास्क्रिप्ट पुस्तकालयों को फिर से जांचेंगे ...

+0

वे पहले ही जोड़े जा चुके हैं। यह RazorView इंजन के साथ एक एमवीसी 3 एप्लीकेशन है। और मैंने जांच की है कि वे वास्तव में मौजूद हैं। – Hanz

+0

जब आप अपने पृष्ठ का स्रोत देखते हैं तो वे सही तरीके से लोड होते हैं? क्या आपने बनाया – balexandre

+0

मैं उन्हें अपनी पोस्ट में जोड़ना भूल गया, लेकिन वे वहां हैं और यह अभी भी काम नहीं करता है ... – Hanz

1

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 

का उपयोग न करें लेकिन सिर्फ खींचें और फ़ोल्डर अपने स्क्रिप्ट से निम्नलिखित .js फ़ाइलों को छोड़ अपने प्रोजेक्ट में:

jquery-1.4.4.min.js 
jquery.validate.min.js 
jquery.validate.unobtrusive.min.js 

यकीन है कि जे एस फ़ाइलों के लिए अपने संदर्भ सही हैं कर देगा कि।

+0

वेब प्लेटफ़ॉर्म इंस्टॉलर का उपयोग करके या पावर खोल का उपयोग करके अद्यतन करें ... jQuery पहले से ही संस्करण 1.6.1 में है :) – balexandre

संबंधित मुद्दे