我收到以下错误消息,



但是,确实存在此操作,并且 Controller 确实存在(因为它在站点上的任何地方都有效),所以我查看了内部异常。



(这是内部的异常...)

堆栈跟踪



现在,我们有了一个带有动态菜单系统的网站设置,因此我们在通用 Controller 上使用RenderAction()来构建此菜单系统。

<% Html.RenderAction("RenderMenu", "Site"); %>

该调用是从MasterPage进行的,并且可以正常工作,直到出现类似这样的验证错误,
 [HttpPost]
        public ActionResult Register(UserModel UserToAdd)
        {
            if(!ModelState.IsValid)
            {
                return View(UserToAdd);
            }
            //Run some validation
            if (_UserService.DoesEmailExist(UserToAdd.EMail))
            {
                TempData["error"] = "Email Address Already in use!";
                return View(UserToAdd);
            }

            //Add the user

            TempData["info"] = "User Added - " + UserO.ID;
            return View("Success");
        }

如果有新用户,它会很好地工作,但是如果有人输入已经存在的电子邮件,则会出现上述错误。此RenderAction方法可在整个网站上使用(这是我们添加的第一个表格)

有什么建议么?

最佳答案

固定的:

RenderAction()方法如下

        [HttpGet]
        public ActionResult RenderMenu()
        {
            //Do Stuff
        }

删除HttpGet属性已解决了该问题。
        public ActionResult RenderMenu()
        {
            //Do Stuff
        }

想知道为什么吗?

关于validation - Asp.Net MVC : Execution of the child request failed.请检查InnerException以获取更多信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3211919/

10-11 01:24