C# 使用@Html.HiddenFor验证无效
我有以下代码:C# 使用@Html.HiddenFor验证无效,c#,asp.net,asp.net-mvc-3,razor,C#,Asp.net,Asp.net Mvc 3,Razor,我有以下代码: @Html.HiddenFor(model => model.Posted, Model.Posted = DateTime.Now) 但是验证不起作用。当我运行应用程序并尝试编辑或创建项目时,它会崩溃 public ActionResult Create() { return View(new NewsItem()); } 我的控制器和应用程序中也有上面的代码,所有代码都按照我希望的方式工作,例如,它输入当前日期并保存,但如果我将一个编辑器框留空或一个所有编辑
@Html.HiddenFor(model => model.Posted, Model.Posted = DateTime.Now)
但是验证不起作用。当我运行应用程序并尝试编辑或创建项目时,它会崩溃
public ActionResult Create()
{
return View(new NewsItem());
}
我的控制器和应用程序中也有上面的代码,所有代码都按照我希望的方式工作,例如,它输入当前日期并保存,但如果我将一个编辑器框留空或一个所有编辑器框留空,则应用程序崩溃并出现以下错误:
对象引用未设置为对象的实例
我不知道这是什么意思?我认为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)
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(对象引用未设置为对象的实例)的问题。您可能需要为任何人发布新闻项模型的代码,以进一步帮助您
评论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是从哪里来的,那么我们需要请一位通灵师。当然,除非您发布更多的代码。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(对象引用未设置为对象的实例)的问题。您可能需要为任何人发布新闻项模型的代码,以进一步帮助您
评论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是从哪里来的,那么我们需要请一位通灵师。当然,除非您发布更多代码。让我们保持简单:
- 删除对视图中发布的模型的任何引用
- 在控制器中的Post Create操作中将Post属性设置为DateTime.Now()
- 删除对视图中发布的模型的任何引用
- 在控制器中的Post Create操作中将Post属性设置为DateTime.Now()
- 让我们保持简单: