C# jQuery对话框按钮不会触发ValidationSummary

C# jQuery对话框按钮不会触发ValidationSummary,c#,asp.net-mvc,jquery,C#,Asp.net Mvc,Jquery,在使用了一些小型MVC应用程序之后,我从头开始开发一个新的MVC应用程序。我有一些在jQuery对话框中打开PartialView的功能。此对话框允许用户添加某种新模型。它使用jQuery按钮存储,因此没有submitbutton。问题是,当模型无效时(例如,未填写必填字段),它不会显示验证 短篇小说;该对话框执行它需要执行的操作,除了通过对话框按钮显示我的验证 在主布局中,我有以下参考 <script type="text/javascript" src="@Url.Content("~

在使用了一些小型MVC应用程序之后,我从头开始开发一个新的MVC应用程序。我有一些在jQuery对话框中打开PartialView的功能。此对话框允许用户添加某种新模型。它使用jQuery按钮存储,因此没有submitbutton。问题是,当模型无效时(例如,未填写必填字段),它不会显示验证

短篇小说;该对话框执行它需要执行的操作,除了通过对话框按钮显示我的验证

在主布局中,我有以下参考

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.8.2.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.24.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/MicrosoftAjax.debug.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/MicrosoftMvcAjax.debug.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/MicrosoftMvcValidation.debug.js")"></script>
最后是Create.cshtml的代码

@model PCLPro.Common.Models.Area

@using (Html.BeginForm())
{
  @Html.AntiForgeryToken()
  @Html.ValidationSummary(false, "De volgende velden zijn niet goed ingevuld")

<fieldset>
    <legend>Area</legend>

    <div class="editor-label">
  @Html.LabelFor(model => model.Code)
</div>
<div class="editor-field">
  @Html.EditorFor(model => model.Code)
  @Html.ValidationMessageFor(model => model.Code)
</div>

<div class="editor-label">
  @Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
  @Html.EditorFor(model => model.Description)
</div>
@model PCLPro.Common.Models.Area
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false,“De volgende velden zijn niet goed ingevuld”)
地区
@LabelFor(model=>model.Code)
@EditorFor(model=>model.Code)
@Html.ValidationMessageFor(model=>model.Code)
@LabelFor(model=>model.Description)
@EditorFor(model=>model.Description)

}愚蠢的问题,但您是否添加了jquery引用以使其正常工作

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript">


我通常使用数据注释,如[Required]等。你能展示你的面积模型吗?

所以,在谷歌上搜索其他东西,我找到了我问题的答案。由于它们是局部视图,我需要重新分析客户端的非侵入性验证规则

$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse('form');

将其添加到对话框的“打开”功能可以解决我的问题。

是的,我有。谢谢你的快速回复!将在上面提到它!你也可以粘贴你的模型吗?好的,我想所有必要的东西都在那里了
[HttpGet]
public PartialViewResult Create()
{
  return PartialView();
}

//
// POST: /Area/Create
[HttpPost]
[ValidateInput(true)]
public ActionResult Create(FormCollection collection)
{
  var model = new Area();
  try
  {
    model.Code = collection["Code"];
    model.Description = collection["Description"].TrimEnd('\"');

    if (TryValidateModel(model))
    {
      // Area naar BLL sturen en opslaan
      _areaBLL.AddArea(ref model);
      return Json(new { success = true });
    }
    else
    {
      return PartialView();
    }
  }
  catch
  {
    return PartialView();
  }
}
@model PCLPro.Common.Models.Area

@using (Html.BeginForm())
{
  @Html.AntiForgeryToken()
  @Html.ValidationSummary(false, "De volgende velden zijn niet goed ingevuld")

<fieldset>
    <legend>Area</legend>

    <div class="editor-label">
  @Html.LabelFor(model => model.Code)
</div>
<div class="editor-field">
  @Html.EditorFor(model => model.Code)
  @Html.ValidationMessageFor(model => model.Code)
</div>

<div class="editor-label">
  @Html.LabelFor(model => model.Description)
</div>
<div class="editor-field">
  @Html.EditorFor(model => model.Description)
</div>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript">
$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse('form');