我在Views中的Person文件夹中有一个PersonController和一个名为“Add”的视图。
“添加”视图包含标题,名字,姓氏和电话号码。标题是具有预先填充值的下拉列表。要获得此下拉列表,请致电
<% Html.RenderAction("Titles", "Person");
调用该Action时,它将返回PartialView。 PartialView是预配置标题的下拉列表。
情景:
我有两个名为“添加”的控制器操作(一个获取,一个帖子)。在HttpGet上,它基本上加载了一个空白表单,包含标题下拉列表,空文本框等。当用户单击上传按钮时,它会调用“添加”HttpPost。在这个动作中,我做了一些验证检查,确保它们填写了必填字段等。如果字段为空,我向ModelState添加一个错误:
if(string.IsNullOrEmpty(firstName))
{
ModelState.AddModelError("person", "Person first name is required.");
}
如果modelstate无效,我返回View,这样用户就可以看到验证错误消息。
只要ModelState有效,Action就会被正确呈现,但是,如果出现错误并且我向ModelState添加了一个错误并从HttpPost操作返回View,则会在以下视图中抛出HttpException: / p>
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.
告诉我在“人员”控制器上找不到名为“标题”的操作。显然我知道它存在,因为它在ModelState中的任何错误之前执行得很好。
有什么想法吗?
答案 0 :(得分:0)
将使用与首次调用的主要操作相同的HTTP方法调用子操作。
因此,我假设您已[HttpGet]
标记了/Person/Titles
行动。如果删除它,它应该可以工作。