验证消息未显示在ModelState.IsValid上

时间:2016-02-03 08:57:06

标签: c# asp.net-mvc model-view-controller asp.net-mvc-5 action

我正在使用Asp.Net MVC5开发我的第一个应用程序。在我的应用程序中,我有单一视图,其中我将调用两个动作。使用按钮和动作链接的另一个动作。当我使用按钮调用它时,它可以完美地用于验证消息。

enter image description here

另一方面,如果我点击“添加另一个”(这是动作链接)我想要相同的验证,但它没有显示任何验证消息。我已经为@ Html.ActionLink()点击事件实现了以下代码。

在Razor View中 -

   @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时显示所有验证消息。我该如何解决这个问题?

Snapshot When I Clicked on 'Add Another' Link

1 个答案:

答案 0 :(得分:0)

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

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

@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>