Edit.aspx:
<th>Calendar<input id="datepicker" name="datepicker" type="text" class="input-box"/></th>
控制器操作:
// POST: /Studenti/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int[] rb, int id, string datepicker)
{
List<nastava_prisustvo> nastava = new List<nastava_prisustvo>();
if (String.IsNullOrEmpty(datepicker))
ModelState.AddModelError("datepicker", "First name is required");
try
{
if (ModelState.IsValid)
{
string poruka = "";
for (int i = 1; i <= rb.Length; i++)
{
string name = "chk" + i;
string selID = Request.Form[name];
if (selID == "on")
{
nastava.Add(new nastava_prisustvo
{
br_indexa = int.Parse(Request.Form["id_stud" + i]),
id_predmet = id,
datum = System.DateTime.Parse(Request.Form["datepicker"])
});
}
}
return View("show", nastava);
}
}
catch(Exception ex){
ModelState.AddModelError("*", "An unexpected error occurred.");
}
return View("show", nastava);
}
}
如何验证datepicker fiel?如果未选择日期,如何停止发布数据并显示相应的消息。我使用ASP&gt; NET MVC 1并阅读此http://www.superexpert.com/Blog/archive/2008/09/09/asp-net-mvc-tip-42-use-the-validation-application-block.aspx但未解决我的问题
答案 0 :(得分:1)
如果要在回发之前验证日期,则必须使用客户端验证。 xVal是一个流行的插件。
对于服务器端验证,您将需要查看模型绑定和模型验证。
答案 1 :(得分:1)
ASP.NET MVC不使用您在ASP.NET中使用的相同类型的控件。基本上你必须在JavaScript代码中手动完成大部分工作,而在ASP.NET中它会自动生成代码。
我会使用JQuery或其他东西来验证按钮单击控件中的数据。
答案 2 :(得分:1)
我会坚持服务器端验证。试试这个:
DateTime datePosted;
if (!DateTime.TryParse(Request.Form["datepicker"], out datePosted))
{
this.ModelState.AddModelError("datepicker", "Invalid Date!");
}
if (this.ModelState.IsValid)
{
return View("show", nastava);
}
else
{
// return your GET edit action here
return Edit(5);
}
您的编辑视图将自动传递任何验证错误,您可以使用验证摘要显示它们。
<%= Html.ValidationSummary() %>
答案 3 :(得分:0)
因为您已使用自己的Javascript在客户端上进行验证,请尝试使用jQuery UI数据选择器: http://jqueryui.com/demos/datepicker/
然后,最简单的说,在服务器端,你可以取字符串值“datepicker”在try / catch中转换它。
var dtDatePicker = new DateTime();
try
{
dtDatePicker = Convert.ToDateTime(datepicker);
// worked, carry on
}
catch
{
// didn't work, invalid date.
}