执行处理程序'system.Web.HttpHandlerUtil + serverExecuteHttphandlerAsynWrapper的子请求时出错

时间:2013-08-18 14:34:24

标签: asp.net-mvc asp.net-mvc-4

mylogin页面是一个部分视图。 我使用 @html.Action(“LogOn”)

但它不能在我的登录操作中重定向到“mainIndex”。 并说:

       error executing child request for handler 'system.Web.HttpHandlerUtil+serverExecuteHttphandlerAsynWrapper 

我将 @ html.Action(“LogOn”)更改为 @ {html.RenderAction(“LogOn”)} ,但没有不同。  并更改为 @ {Html.partialView(“LogOn”)} ,但错误:

    The model item passed into the dictionary is of type 'System.String', but this dictionary requires a model item of type 'MyProject.Models.UsersClass+LogOn'.

我的代码:

        [HttpGet]
        public ActionResult LogOn(String returnUrl)
         {

        using (var db = new pakalaContext())
        {
            UsersClass.LogOn AllFeatureToLog = new UsersClass.LogOn();

            if (User.Identity.IsAuthenticated) //remember me
            {
                MyClass obj = new MyClass();
                if (obj.shouldRedirect(returnUrl))
                {
                    return Redirect(returnUrl);
                }
                return Redirect(FormsAuthentication.DefaultUrl);
            }

            return PartialView(AllFeatureToLog);
        }
    }



    public MyProject.Models.AccountModels.ControlUsers MembershipService { get; set; }

    [HttpPost]
    public ActionResult LogOn(UsersClass.LogOn loginInfo, string returnUrl)
    {


        if (this.ModelState.IsValid)
        {

            if (MembershipService.ValidateUser(loginInfo.usernam, loginInfo.password))
                {
                FormsAuthentication.SetAuthCookie(loginInfo.usernam,   loginInfo.RememberMe);
                MyClass obj1 = new MyClass();
                if (obj1.shouldRedirect(returnUrl))
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("MainIndex", "Home");
                }
                                }

            else
            {
                this.ModelState.AddModelError("LoginError", "incorrec pass or username");

            }
        }



        return PartialView(loginInfo);
    }

2 个答案:

答案 0 :(得分:0)

问题似乎是LogOn()动作需要2个参数。您不能简单地调用@{ RenderAction("LogOn"); },您应该添加参数,例如:

@{ 
    var loginInfo = new UsersClass.LogOn() { /* Stuff */ };
    var url = Request.Url.ToString();
    Html.RenderAction("LogOn", new { loginInfo = loginInfo, returnUrl = url });
}

所以问题是框架正在搜索没有参数的LogOn()动作,但没有参数。因为它被称为子动作,所以你会得到这个非常详细的错误。

答案 1 :(得分:0)

如果有人来到这里(像我一样)在将修改后的源代码发布到部署服务器时寻找nopCommerce 3.10中上述错误的解决方案,我的问题是由于缺少插件引起的(我通过检查发现了这一点数据库中的日志表。

这是因为实际上有2个构建脚本用于准备和部署代码(prepare.bat和deploy.bat),在发布源代码时必须运行这些代码来构建源代码 - 这些构建了Nop。 Web和Nop.Administration Web应用程序单独并将相关文件/插件复制到相关位置。它创建了一个可部署的diretory,您可以将其复制到部署服务器。

希望这有助于某人。