4 Stimmen

Standardvalidierung für Dropdowns deaktivieren

Ich habe eine Ansicht, die als Maschinenfilter bekannt ist

@using (Html.BeginForm())
{
    <div id="filterDiv">
        <fieldset>
            <legend>Filter</legend>
            <table>
                <tr>
                    <td>
                        @Html.Label("Machine Serial No :")
                    </td>
                    <td>
                        @Html.TextBoxFor(m => m.MachineSrNo, new { @id = "SearchSerialNo" })
                    </td>
                    <td>
                        @Html.Label("City :")
                    </td>
                    <td>
                        @Html.DropDownListFor(m => m.CityId, new SelectList(ViewBag.Cities, "CityId", "CityName"), "--Select City--", new { @id = "drpCity" })
                    </td>
                    <td>
                        @Html.Label("Bank Branch :")
                        </td>
                        <td>
                        @Html.DropDownListFor(m => m.BankBranchId, new SelectList(ViewBag.BankBranch, "BankBranchId", "Name"), "--Select Bank Branch--", new { @id = "drpBankBranch" })
                    </td>
                </tr>
            </table>
        </fieldset>
    </div>
    <p>
    <input type="submit" value="Search" />
    <input type="reset" value="Clear" />
</p>
}

Wenn ich hier auf die Schaltfläche "Suchen" klicke, wird die Standardvalidierung angezeigt. Wo ich keine Validierung für diese Ansicht gesetzt haben.

10voto

VJAI Punkte 31029

ASP.NET MVC führt implizit einige Validierungen durch, auch wenn Sie die Eigenschaften nicht mit Validierungsattributen ausschmücken. Das Paar von Validierungen sind Typüberprüfung und erforderlich. Diese beiden Überprüfungen finden statt, wenn Sie nicht-nullbare integrierte Datentypen wie Integer, Datetime usw. verwenden.

Ich hoffe, Sie haben Eigenschaften vom Typ Integer. Eine Integer-Eigenschaft sollte einen Wert haben, wenn Sie nicht die implizite Validierung schlägt fehl und Sie erhalten einen Fehler.

Um dies zu vermeiden, können Sie nullbare Typen verwenden.

Zum Beispiel.

public class Model
{
   public int? CityId{get;set;}
}

5voto

Jason Honingford Punkte 433

Für MVC5, fügen Sie einfach data_val = false für den Helfer, den Sie nicht validieren wollen.

@Html.TextBoxFor(m => m.MachineSrNo, new { @id = "SearchSerialNo", data_val = false  })

-1voto

Gupta Vini Punkte 430

Überprüfen Sie Ihr Modell, das Sie verwenden, anhand dieser Ansicht. Sie müssen dort das Attribut Required verwenden. Entfernen Sie dasselbe von dort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X