ValidationMessage asp.net mvc

时间:2015-04-19 15:27:32

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我对ModelState.AddModelError方法和ValidationMessage方法有疑问。

我是ASP.NET MVC的新手,我有点困惑。

我写了这段代码:

public ActionResult update(FormCollection collection)
{
    int oos = 0;

    try
    {
        oos = int.Parse(collection[0]);
    }
    catch
    {         
    }

    data d = new data();

    TryUpdateModel(d , collection.ToValueProvider());

    if (ModelState.IsValid)
    { 
         return View("index",d);
    }
    else
    {      
        ModelState.AddModelError("Date", "Wronge Date");   
        d.Id = 50;
        return View("index",d);
    }
}

和视图方面的代码

@{

    ViewBag.Title = "index";
}

<h2>index</h2>
@TempData["Hi"]

@Html.ValidationMessage("fullname") 

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() @Html.TextBox("id", 70) 
    @Html.TextBox("Date", "3/2/1991 12:00:00 ص")
    @Html.ValidationMessage("Date","Please insert the correct Date Format") 

    <input type="submit"> 
}

我的问题是,为什么消息请插入正确的日期格式直接出现,当我还没有提交表格的时候,我还没有提交表格,为什么当我在日期提交错误的表格时格式,出现相同的消息,但不是我在更新方法中设置为日期键的消息 Wronge Date

我可能仍然不理解这两种方法,所以我希望能找到一些人向我解释。

通过示例或参考进行探索将不胜感激

1 个答案:

答案 0 :(得分:2)

请查看http://www.asp.net/mvc/overview/getting-started/introduction/adding-validation

因为您已在View中输入了一条消息,所以它将使用您从控制器添加的错误。至于你的全名,你还没有消息集,只有该字段的placehoder。