3

Machinefilter と呼ばれるビューがあります

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

ここで、「検索」ボタンをクリックするたびに、デフォルトの検証が表示されます。このビューの検証を行っていない場所。

4

3 に答える 3

10

ASP.NET MVC は、プロパティを検証属性で装飾しなくても、暗黙的にいくつかの検証を行います。いくつかの検証は型チェックであり、必須です。これら 2 つの検証は、integer、datetime などの null 非許容の組み込みデータ型を使用する場合に発生します。

プロパティが整数型であることを願っています。送信しないと暗黙の検証が失敗し、エラーが発生する場合、整数プロパティには何らかの値が必要です。

これを避けるために、null 許容型を使用できます。

例のために。

public class Model
{
   public int? CityId{get;set;}
}
于 2012-06-20T05:01:54.800 に答える
4

MVC5 の場合、検証を行わないヘルパーにdata_val = falseを追加するだけです。

@Html.TextBoxFor(m => m.MachineSrNo, new { @id = "SearchSerialNo", data_val = false  })
于 2016-12-02T17:44:54.090 に答える
-1

このビューに対して使用しているモデルを確認してください。そこで Required 属性を使用している必要があります。そこから同じものを削除します。

于 2012-06-20T04:51:48.783 に答える