0

我的索引页面上有一个部分视图查询表单,我正在尝试从部分视图发布数据。

 [HttpPost]
 public ActionResult EnquiryForm(Booking model)
 {
    if (ModelState.IsValid)
    {
       ........
    }
    return RedirectToAction("Index", "Home");
 }

当表单发布空白验证不起作用时,服务器端验证

预订模式

public class Booking
{
    [Required(ErrorMessage = " - Required" )]
    public string Name { get; set; }

    [Required(ErrorMessage = " - Required")]
    [RegularExpression(".+@.+\\..+", ErrorMessage = "In-Correct Email")]
    public string Email { get; set; }
}

问候 谢谢

4

1 回答 1

1

如果验证为假并且您将页面重定向到“/Home/Index”,您将看不到验证消息。见打击:

[HttpPost]
 public ActionResult EnquiryForm(Booking model)
 {
    if (ModelState.IsValid)
    {
       ........ 
    }
  //  return RedirectToAction("Index", "Home"); 
      return View();
 }

或者您可以尝试以下代码:

你的控制器

[HttpGet]
public ActionResult EnquiryForm()
{          
     return View();
}

[HttpPost]
public ActionResult EnquiryForm(Booking model)
{
   if (ModelState.IsValid)
    {
        return RedirectToAction("Index", "Home");
    }
   return View();
}

您的查询表格视图

@using (Html.BeginForm("EnquiryForm", "Home", FormMethod.Post))
{       
   @Html.Partial("_EnquiryFormPartialView", Model)

   <input type="submit" id="bt_submit"/>
 }

你的部分观点

<div>
    @Html.LabelFor(n => n.Name)
    @Html.TextBoxFor(n => n.Name)
    @Html.ValidationMessageFor(n => n.Name)
</div>

<div>
  @Html.LabelFor(n => n.Email)
  @Html.TextBoxFor(n => n.Email)
  @Html.ValidationMessageFor(n => n.Email)
</div>
于 2013-10-12T19:54:35.583 回答