gpt4 book ai didi

asp.net-mvc-2 - Html.RenderAction无法在MVC2的 Controller 中找到无效的ModelState操作

转载 作者:行者123 更新时间:2023-12-03 07:45:06 27 4
gpt4 key购买 nike

我在View的Person文件夹中有一个PersonController和一个名为“Add”的 View 。

“添加” View 将使用标题,名字,姓氏和电话号码。标题是带有预填充值的下拉列表。要获得此下拉列表,我打电话

<% Html.RenderAction("Titles", "Person");

调用该Action时,它将返回PartialView。 PartialView是预配置标题的下拉列表。

场景:

我有两个名为“添加”的 Controller Action (一个获取,一个发布)。在HttpGet上,它实际上加载一个空白表格,其中包含标题,空文本框等下拉列表。当用户单击上载按钮时,它将调用“添加” HttpPost。在此操作内,我进行了一些验证检查,确保它们填写了必填字段,等等。如果字段为空,则向ModelState添加错误:
if(string.IsNullOrEmpty(firstName))
{
ModelState.AddModelError("person", "Person first name is required.");
}

如果modelstate无效,我将返回View,以便用户可以看到验证错误消息。

只要ModelState有效,就可以正确呈现Action,但是,如果存在错误,并且我向ModelState添加错误并从HttpPost操作返回View,则在以下 View 上抛出HttpException:
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.

通知我在“人” Controller 上找不到名为“标题”的操作。显然,我知道它在那里,因为它在ModelState中出现任何错误之前就可以很好地执行了。

有任何想法吗?

最佳答案

将使用与首次调用的主要操作相同的HTTP方法来调用子操作。

因此,我假设您在[HttpGet]操作上标记了/Person/Titles。如果删除它,它应该可以工作。

关于asp.net-mvc-2 - Html.RenderAction无法在MVC2的 Controller 中找到无效的ModelState操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com