ModelState.IsValid 上未显示验证消息

Validation Message Not Displays On ModelState.IsValid

我正在使用 Asp.Net MVC5 开发我的第一个应用程序。在我的应用程序中,我只有一个视图,我将在其中调用两个操作。一个动作使用按钮,另一个动作link。当我使用按钮调用它时,它非常适合验证消息。

另一方面,如果我单击 'Add Another'(这是操作 link)我想要相同的验证,但它不显示任何验证消息。我已经为@Html.ActionLink() click 事件实现了以下代码。

在剃刀视图中 -

   @Html.ActionLink("Add Another", "AddNew", "AgreementRegistration", new { @class = "postLink" })

在控制器中 -

[HttpPost]
    public ActionResult AddNew(User_Master usermaster, Commercial_Master commercialmaster, Property_Master propertymaster, PropertyCommercial_Master propertycommercialmaster, PropertyDetails_Master propertydetailsmaster, SecurityDeposit_Master securitydepositmaster, PropertyUser_Master propertyusermaster, UserType_Master usertypemaster)
    {
        agreementnew = new AgreementNew(usermaster, commercialmaster, propertymaster, propertycommercialmaster, propertydetailsmaster, securitydepositmaster, propertyusermaster, usertypemaster);
        if (ModelState.IsValid)
        {
            //Some Logic
            return View("InitialView", agreementnew);
        }
        else
        {
            //Some Logic
            return View("InitialView", agreementnew);
        }
    }

当我使用调试器检查它时,它会在 else 块中使用上述方法,但没有显示任何验证消息。我想在单击 ActionLink 时显示所有验证消息。我该如何解决这个问题?

点击操作 link 它不会提交您的表单。只有在提交表单时才会检查验证。因此,请在点击您的操作 link 时使用 Javascript 提交表单 link。

首先将您的操作 link 更改为此。

@Html.ActionLink("Add Another", "AddNew", "AgreementRegistration", new { @class = "postLink", onclick="submitMyForm()" })

然后添加以下代码

<script>
   function submitMyForm(){
   $("#yourFormID").submit();  //assign an id to your form and use that here
}
</script>