【发布时间】:2016-02-03 08:57:05
【问题描述】:
我正在使用 Asp.Net MVC5 开发我的第一个应用程序。在我的应用程序中,我有一个视图,我将在其中调用两个操作。一个操作使用按钮,另一个操作通过 actionlink。当我使用按钮调用它时,它非常适合验证消息。
另一方面,如果我单击“添加另一个”(这是操作链接),我想要相同的验证,但它没有显示任何验证消息。我已经为@Html.ActionLink() 点击事件实现了下面的代码。
在 Razor 视图中 -
@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 时显示所有验证消息。我该如何解决这个问题?
【问题讨论】:
-
您的“添加另一个”`是一个重定向的链接。它不执行验证。但重点是什么 - 如果您进行重定向,您不会保存当前数据,因此消息会有点毫无意义。
-
@StephenMuecke 但我正在重定向到相同的视图。如果不可能,那我该如何实现呢?
-
是的,这会创建模型的新实例并显示新视图。不清楚您想要实现什么以及为什么
-
我想在点击 actionlink 时实现相同的验证,所以有没有其他选项可以实现这一点,请告诉我。
-
但是为什么呢?它是一个重定向的链接。您没有保存用户输入的数据(一旦单击链接,您就会丢弃用户输入的所有值。
标签: c# asp.net-mvc model-view-controller asp.net-mvc-5 action