- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
平台:Windows 7 Ultimate
IDE:Visual Studio 2010 Ultimate
网络环境: ASP.NET MVC 2
数据库: SQL Server 2008 R2 Express
数据访问: Entity Framework 4
表单验证: DataAnnotations
示例应用:来自 Wrox Pro ASP.NET MVC 2 的 NerdDinner
书籍: Wrox Professional MVC 2
第 1 章的问题 - 部分: “将验证和业务规则逻辑与模型类集成”(第 33 至 35 页)
错误概要: NerdDinner 表单验证错误,DataAnnotations 和数据库空值。
当数据库字段设置为不允许空值时,示例代码中的 DataAnnotations 不起作用。
书中的代码和从 codeplex 下载的示例代码出现错误。
帮助!对此我真的很沮丧!!我不敢相信这么简单的东西竟然不起作用???
重现错误的步骤:
查看屏幕截图:
http://www.intermedia4web.com/temp/nerdDinner/StackOverflowNerdDinnerQuestionshort.png
代码 A:
[MetadataType(typeof(Dinner_Validation))]
public partial class Dinner { }
[Bind(Include = "Title, EventDate, Description, Address, Country, ContactPhone, Latitude, Longitude")]
public class Dinner_Validation
{
[Required(ErrorMessage = "Title is required")]
[StringLength(50, ErrorMessage = "Title may not be longer than 50 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Description is required")]
[StringLength(265, ErrorMessage = "Description must be 256 characters or less")]
public string Description { get; set; }
[Required(ErrorMessage="Event date is required")]
public DateTime EventDate { get; set; }
[Required(ErrorMessage = "Address is required")]
public string Address { get; set; }
[Required(ErrorMessage = "Country is required")]
public string Country { get; set; }
[Required(ErrorMessage = "Contact phone is required")]
public string ContactPhone { get; set; }
[Required(ErrorMessage = "Latitude is required")]
public double Latitude { get; set; }
[Required(ErrorMessage = "Longitude is required")]
public double Longitude { get; set; }
}
代码 B:
public class DinnerRepository
{
private NerdDinnerEntities _NerdDinnerEntity = new NerdDinnerEntities();
// Query Method
public IQueryable<Dinner> FindAllDinners()
{
return _NerdDinnerEntity.Dinners;
}
// Query Method
public IQueryable<Dinner> FindUpcomingDinners()
{
return from dinner in _NerdDinnerEntity.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}
// Query Method
public Dinner GetDinner(int id)
{
return _NerdDinnerEntity.Dinners.FirstOrDefault(d => d.DinnerID == id);
}
// Insert Method
public void Add(Dinner dinner)
{
_NerdDinnerEntity.Dinners.AddObject(dinner);
}
// Delete Method
public void Delete(Dinner dinner)
{
foreach (var rsvp in dinner.RSVPs)
{
_NerdDinnerEntity.RSVPs.DeleteObject(rsvp);
}
_NerdDinnerEntity.Dinners.DeleteObject(dinner);
}
// Persistence Method
public void Save()
{
_NerdDinnerEntity.SaveChanges();
}
}
代码 C:
// **************************************
// GET: /Dinners/Create/
// **************************************
public ActionResult Create()
{
Dinner dinner = new Dinner() { EventDate = DateTime.Now.AddDays(7) };
return View(dinner);
}
// **************************************
// POST: /Dinners/Create/
// **************************************
[HttpPost]
public ActionResult Create(Dinner dinner) {
if (ModelState.IsValid)
{
dinner.HostedBy = "The Code Dude";
_dinnerRepository.Add(dinner);
_dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
else
{
return View(dinner);
}
}
代码 D:
// **************************************
// GET: /Dinners/Edit/{id}
// **************************************
public ActionResult Edit(int id)
{
Dinner dinner = _dinnerRepository.GetDinner(id);
return View(dinner);
}
// **************************************
// POST: /Dinners/Edit/{id}
// **************************************
[HttpPost]
public ActionResult Edit(int id, FormCollection formValues)
{
Dinner dinner = _dinnerRepository.GetDinner(id);
if (TryUpdateModel(dinner)){
_dinnerRepository.Save();
return RedirectToAction("Details", new { id=dinner.DinnerID });
}
return View(dinner);
}
我已经向 Wrox 和其中一位作者发送了帮助请求,但没有收到任何人的回复。由于这些错误,本书的读者甚至无法继续完成第 1 章的其余部分。即使我从 Codeplex 下载最新版本,它仍然有相同的错误。有人可以帮助我并告诉我需要修复什么吗?谢谢 - 埃德。
最佳答案
终于找到了这本书的 Wrox 论坛,它有答案。答案其实令人惊讶。跟Visual Studio 2010中的调试器有关系。
基本上只需按 F5 继续,一切正常。
这是包含更多答案的论坛主题的链接:
http://p2p.wrox.com/book-professional-asp-net-mvc-2/79788-constraintexception-unhandled-user-code.html#post259245
关于c# - 当表单字段留空时,MVC2 中的 NerdDinner 表单验证 DataAnnotations 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470107/
我一直在修改VS 2010模板。到目前为止,我已经可以从模板创建vb.net类库项目。 但是,一件小事困扰着我。 在我的项目模板中,默认程序集名称与默认文件名相同。我将根 namespace 留为空白
我有一个 NSTextField,里面有一个 NSNumberFormatter。我见过一些文本字段,如果你将它们留空,它只会将之前的数字放回其中。我很好奇 Interface Builder 中是否
sql问题 我有这样的表格: id | Animal | country | gender | qty 1 | cow | USA | male | 6 2 | cow |
我正在尝试制作一个包含内容页面的网站。 我使用 go to chapter 1作为内容部分,当它点击时,它会处理 Chapter 1 这很好用,但有 1 个问题(总有一个问题)...我想让它看起来像维
我正在制作一个包含 4 个主视图的应用。我希望所有这些都保留在顶部的 LIST 菜单中(现在没问题)。 使用 Fragments,我可以在不执行其他 Activity 的情况下更改 View ,但是由
我正在定义一个 Form 类,它有一个文件字段并且不需要向它添加文件......但是每当我不提供文件时,表单都是无效的......所以有什么方法可以让我可以让用户选择是否添加文件吗??? 最佳答案 是
所以我尝试了之前帖子中关于这个问题的一些方法,但似乎没有一个对我有用(毫无疑问是用户错误)。 基本上,如果编辑文本留空,我的计算按钮就会崩溃。我需要发生的是,如果留空,则 edittext 的值为 0
我正在尝试提取 BufferedImage 的 10 px 方形部分并将它们添加到新的 BufferedImage 中,与 this drawImage tutorial 中显示的困惑示例非常相似。但
所以我正在使用 Postgres 和 Hibernate 4.2.2 以及这样的实体 @Entity(name = "Users") @Check(constraints = "email ~* '^
我正在尝试将列名为“邮政编码”、“2010 年人口”、“Land-Sq-Mi”和“每平方英里密度”的 CSV 文件导入我的测试表,该表名为 derp--这就是我在开头使用 drop 语句的原因,这样我
我正在尝试使用 usemin 插件来缩小并创建我的可分发文件。这是我的 Gruntfile.js: module.exports = function(grunt) { require('matc
在我的 HTML 中我有一个 ,并在 内我需要不同的文本行之间的垂直间距。我通过使用 实现了这一点具有对应于我想要的间距量的 CSS 类的元素。 例如,对于 5px 的间隙,我使用 与 heig
我有一个函数触发两个观察者 - keyboardWillShowNotification 和 KeyboardWillHideNotification,我基本上做的是在编辑时重置文本字段,模拟 的效果
这是一个非常奇怪的问题: Screenshoot 我确保图像大小相等,并且 Chrome 可以正确显示。为什么不是 IE 和 Firefox?对此有什么解决方案吗? 最佳答案 一个 li 的高度与另一
我是一名优秀的程序员,十分优秀!