0

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);
    }
4

2 回答 2

0

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

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

希望这可以帮助某人。

于 2014-03-27T23:01:20.010 回答
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()没有参数的动作,但没有。因为它是作为子动作调用的,所以你会得到这个不太详细的错误。

于 2013-08-18T15:59:36.317 回答