Frage

Hallo, ich habe folgendes Kabeljau in meinem app aber mit nur zwei Feldern, die es nicht funktioniert.

[Required]        
public string DevelopmentPM { get; set; }

Die folgenden Testläufe und Pässe:

    [TestMethod]
    public void SiteConstruction_MODEL_DevelopmentPM_Is_Required()
    {
        //arrange
        var propertyInfo = typeof(SiteConstructionMetadata).GetProperty    
                           ("DevelopmentPM");

        //act
        var attribute = propertyInfo.GetCustomAttributes(typeof(RequiredAttribute), 
                        true).Cast<RequiredAttribute>().FirstOrDefault();

        //assert
        Assert.IsNotNull(attribute);
    }

Meine Controlller wie folgt aussehen:

        TryUpdateModel(siteConstruction);

        if (!ModelState.IsValid)
           return View(siteConstruction);

Ich habe andere erforderlichen Felder in Modell und sie sind in Ordnung. Dieses Feld ist null (I geprüft), aber nicht das Modell ungültig machen -. So dass keine Validierung und einen Fehler beim Speichern

Meine Ansicht

    <li>
        <label for="DevelopmentPM">
            <strong>Development PM:</strong></label>
        <%= Html.TextBox("DevelopmentPM") %>
        <%= Html.ValidationMessage("DevelopmentPM", "*") %>
    </li>

Ich habe an meinem .dbml (LINQ to SQL) sieht, Rechtschreibung sieht ok.

Ich bin ich etwas fehlt einfach -. Bitte verrückt

Danke

Davy

War es hilfreich?

Lösung

[MetadataType (typeof (SiteConstructionMetadata))] über meine partielle Klasse, nahm ich es für selbstverständlich ich dort hatte.

Das nächste Mal statt Schnipsel veröffentlichen, ich glaube, ich werde es post alle - smeone wous, dass ziemlich schnell gesichtet haben

.

Davy

Andere Tipps

Stellen Sie sicher, dass Sie die DataAnnotationsModelBinder den Standardbinder Modell machen. Fügen Sie folgende in Ihrer Global.asax.cs:

ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder();

und stellen Sie sicher, dass Sie die System.ComponentModel.DataAnnotations.dll Montage in Ihrem Projekt verwiesen haben. Siehe dieses Tutorial für weitere Details.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top