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 也会隐含地进行一些验证。这两个验证是类型检查和必需的。如果您使用不可为空的内置数据类型(如整数、日期时间等),则会发生这两个验证。

我希望你有整数类型的属性。如果你不提交隐式验证失败并且你得到一个错误,一个整数属性应该有一些值。

为避免这种情况,您可以使用可为空的类型。

例如。

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 回答