下午伙计们,显示一条消息,用户如果字段为空
我是新来的C#和IM试图创建一个if语句来检查两个字段的值,如果这两个领域都是空白,给再向用户显示消息。
我的两个领域是出生日期与日期时间的数据类型和年龄为int的数据类型。我使用studio 2013,并有一个C#mvc项目。
在我create.cshtml页我使用剃刀语法这两个表单域。
@Html.EditorFor(model => model.client.DateOfBirth, new { htmlAttributes = new { @class = "form-control", @placeholder = "dd-mm-yyyy" } })
和
@Html.EditorFor(model => model.client.AgeNotKnown, new { htmlAttributes = new { @class = "form-control", @placeholder = "Age in Years" } })
用户需要提交表单时,以填补在任一个或其他字段。
在我的控制,我的HttpPost为的ActionResult创建。我已经尝试了几种方法来通过if语句获得这个工作,但我似乎得到了这个工作。
我已经使用string.IsNullOrEmpty方法试过了,但是因为这些日期时间和int数据类型,这是不行的。见下面的示例。
if (string.IsNullOrEmpty(clientViewRecord.client.AgeNotKnown));
{
MessageBox.Show("please an Age if DOB not known");
}
db.ClientRecords.Add(clientViewRecord.client);
db.SaveChanges();
return RedirectToAction("MainMenu", "Home");
我得到三个错误的位置:
参数1:不能从转换'诠释?为“字串”
名称“MessageBox的”不存在于当前上下文3)关于“string.IsNullOrEmpty(字符串)”的 最好重载的方法匹配存在具有 一些无效参数
最好对于“string.IsNullOrEmpty(串)”重载的方法匹配具有 一些无效参数
另一种方式我试图得到这个工作在以下...
if (clientViewRecord.client.AgeNotKnown == 0 || clientViewRecord.client.DateOfBirth == 0);
{
MessageBox.Show("please enter an Age or if DOB");
}
db.ClientRecords.Add(clientViewRecord.client);
db.SaveChanges();
return RedirectToAction("MainMenu", "Home");
我得到同样的问题的消息框,为出生日期以下申请。
- 运算符'=='不能应用于'System.DateTime?'类型的操作数。和'int'
我是新来的C#但认为我有点在正确的线条,我认为只需要一点帮助或任何建议。
问候 贝蒂
'MessageBox'是窗体窗体(它在web应用程序中没有用)。添加一个'ModelState'错误并返回视图,以便消息显示在你的'@ Html.ValidationSummary()' - ModelState.AddModelError(“”,“你的错误信息”);返回查看(模型);' –
并使您的属性可以为空 - 'int? AgeNotKnown'和'DateTime? DateOfBirth',以便用'if(DateOfBirth.HasValue)' –
测试它们。但是,处理这个uis的正确方法是创建一个实现'IClientValidatable'的自定义验证属性,以便同时获得客户端和服务器端验证 - [完全指南在ASP.NET MVC 3验证 - 第2部分](http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2 ) –