2012-01-04 64 views
0

我有下面的代码验证不工作:使用@ Html.HiddenFor

@Html.HiddenFor(model => model.Posted, Model.Posted = DateTime.Now) 

但验证不起作用它崩溃了,当我运行我的应用程序,并尝试编辑或创建一个项目。

public ActionResult Create() 
{ 
    return View(new NewsItem()); 
} 

我也有我的控制器上面下面的代码和应用程​​序所有作品我想它例如做它输入当前日期和保存它,但如果我离开一个编辑框为空或全部编辑框的空白处应用程序崩溃并出现以下错误:

Object reference not set to an instance of an object.

我不知道这是什么意思?我认为由MVC3 C#提供的默认验证应该工作?那么,什么是错的?谁能帮忙?

/* This line of code is what is provided for validation it is pretty much 
    similar on all the edit, delete and create views. */ 
@Html.ValidationMessageFor(model => model.Posted) 
+1

当你看到任何状态的对象引用没有设置为对象的实例..这意味着你正试图访问一个未被实例化的对象..你可以发布代码,你得到确切的错误.. NewsItem在哪里宣布例如... – MethodMan 2012-01-04 19:10:53

+0

你在哪里陈述,如果你留下一个或所有对象空白,你将需要做一些零检查那里以及 – MethodMan 2012-01-04 19:18:07

+0

我将张贴代码谢谢你的帮助 – user1128756 2012-01-04 19:19:45

回答

5

您对Html.HiddenFor的第二个参数看起来不对。如果你想设置的值,试试这个:

@{ 
    Model.Posted = DateTime.Now; 
} 
@Html.HiddenFor(m => m.Posted) 

或者更好的是,设置在控制器中的值:

public ActionResult Create() 
{ 
    return View(new NewsItem { Posted = DateTime.Now }); 
} 

然后,你可以这样做:

@Html.HiddenFor(m => m.Posted) 

更新后评论2

正在输入什么日期?正确的日期应该是什么?你的问题说明了一个NullReferenceException的问题(对象引用没有设置为对象的一个​​实例)。您可能需要为任何人发布您的NewsItem模型的代码以进一步帮助您。

更新注释4

后,我看不出任何的代码我提供任何改变应用程序的功能。如果你不明白NullReferenceException是什么,这听起来像你没有编程很长时间。所以我会用一粒盐来刺你的不正确。

NullReferenceException与验证无关,确实如此。当您尝试调用引用null的变量的方法,属性或其他成员时,就会发生这种情况。考虑以下几点:

var myVariable = "Hello, world"; 
if (DateTime.Now.Year > 2011) 
{ 
    myVariable = null; 
} 
var anotherVariable = myVariable.Substring(1); 

在星期天之前,这段代码本该工作得很好。但只要时钟在您的时区切换到2012年,它就会开始抛出NullReferenceException。为什么?因为当年份是2012(或更高版本),你的代码将基本上可以这样做:

null.SubString(1); 

如果这没有帮助你找出其中你的NullReferenceException是从,那么我们将要到来召唤一个通灵者。当然,除非你张贴更多的代码。

+0

我会尝试,让你知道 – user1128756 2012-01-04 19:32:58

+0

你的代码不起作用它不输入正确的日期 – user1128756 2012-01-04 19:37:46

+0

当前它输入的日期正确的日期,但你的日期不 – user1128756 2012-01-04 19:50:46

0

让我们保持它的简单:

  • 删除对模型的任何引用。张贴在您的视图中,
  • 在控制器的后创建操作中,将张贴属性设置为DateTime.Now()。
+0

我的创建工作正常DateTime.Now工作正常创建它是编辑,我感谢问题 – user1128756 2012-01-04 21:49:45

+0

答案保持不变编辑您的NewsItem。在帖子编辑操作中设置张贴属性。 – ZippyV 2012-01-04 22:03:08

相关问题