我有一个int错误验证问题。ASP.Net MVC错误验证
我已经验证了客户名称:
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");
}
}
我很感谢您的帮助,虽然我不太了解如何给“请选择”它的默认值为-1。我可以让它说“请选择”,但我不知道在哪里指定它的价值。我用我视图中的代码更新了我的问题,以显示我目前拥有的代码。 – Ben 2009-12-22 02:20:29
当您创建下拉菜单时,它将具有文本和值。我始终将“值”指定为-1,将文本指定为“请选择”。提交表单时,发布的值将在您的示例中包含“-1”作为CityID。 – 2009-12-22 16:14:24