ASP.Net MVC错误验证
我有一个int错误验证问题。
我对客户名称进行了验证:
if (String.IsNullOrEmpty(CustomerName))
yield return new RuleViolation("Customer Name Required", "CustomerName");
现在如果我想为城市添加验证,在这种情况下,我有一个保存为int类型的CityID,所以我不能用同样的方法编写if语句...因为没有int.IsNullOrEmpty方法。 假设用户没有选择城市的下拉菜单 - 基本上没有价值的节省。
为int编写验证语句的最佳方式是什么?
更新:这是我的视图中我的表单样本:
<% using (Html.BeginForm())
{%>
<fieldset>
<legend>Add a new customer</legend>
<p>
<label for="CustomerName">Customer Name:</label>
<%= Html.TextBox("CustomerName")%>
<%= Html.ValidationMessage("CustomerName", "*")%>
<label for="CityID">City:</label>
<%= Html.DropDownList("CityID", Model.Cities as SelectList, "Select City")%>
<%= Html.ValidationMessage("CityID", "*")%>
<input type="submit" value="Create New Customer" />
</p>
</fieldset>
<% } %>
我的视图模型如下所示:
public class CustomerFormViewModel
{
//Properties
public Customer Customer { get; set; }
public SelectList Cities { get; set; }
//Constructor
public CustomerFormViewModel(Customer customer)
{
CustomerRepository customerRepository = new CustomerRepository();
Customer = customer;
Cities = new SelectList(customerRepository.FindAllCities(), "CityID", "CityName");
}
}
使用可为空的整数,
int? i = null;
一周前我有同样的要求。 你可以用两种方法来解决这个问题。
1)在下拉菜单中,您将始终有“ 请选择 ”,默认值为-1 。 当提交表单并且没有选择城市时, MVC模型将为 CityID 绑定-1 (默认值)。 所以你可以随时检查CityID> 0 else“raise error”
2)为CityID使用c#3.0功能Nullable Int(int?) ,这意味着您的CityID也可以为null。 如果没有为CityID传递值,则您的cityID将始终为空。
您可以在路由配置中设置默认值。 如果您将默认值设置为您知道的值无效,那么您可以检查该值。 如果您的城市编号为1到X,则将默认值设置为-1并检查。
链接地址: http://www.djcxy.com/p/30567.html