Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Asp.Net MVC 5,视图未发回控制器_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4_Razor - Fatal编程技术网

Asp.net mvc Asp.Net MVC 5,视图未发回控制器

Asp.net mvc Asp.Net MVC 5,视图未发回控制器,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Razor,我正在使用Asp.NETMVC5创建一个简单的登录表单。一切正常,但当我在给出用户Id和密码后单击submit按钮时,视图不会返回到所需的控制器操作(登录)。行动如下: [HttpPost] public ActionResult LogIn(User user) { var auth_user = CheckAuthentication(user); if(auth_user!=null)

我正在使用Asp.NETMVC5创建一个简单的登录表单。一切正常,但当我在给出用户Id和密码后单击submit按钮时,视图不会返回到所需的控制器操作(登录)。行动如下:

        [HttpPost]
        public ActionResult LogIn(User user)
        {
            var auth_user = CheckAuthentication(user);
            if(auth_user!=null)
            {
                Session["user"] = new User() { UserId = user.UserId, Name = user.Name };
                return RedirectToAction("Index", "User");
            }
            return View();
        }
        [AllowAnonymous]
        public ActionResult LogIn()
        {
            return View();
        }
以及以下观点:

@model FinancialManagement.Models.User

@{
    ViewBag.Title = "LogIn";
}

<h2>LogIn</h2>

@using (Html.BeginForm("LogIn", "User", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <h4>User</h4>
        <hr />
        @Html.ValidationSummary(true)
        <div class="form-group">
            @Html.LabelFor(model => model.UserId, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.UserId)
                @Html.ValidationMessageFor(model => model.UserId)
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Password)
                @Html.ValidationMessageFor(model => model.Password)
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Log In" class="btn btn-default" />
            </div>
        </div>
    </div>
}
<div>
    @Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

尝试指定视图的名称和模型,如下所示:

return View("NameOfView", YourModel);
如果它不起作用,请放置绝对路径:

return View("~/Views/FolderName/ViewName.cshtml");

你的控制器名是什么?您说过“不会返回到所需的控制器操作”,您的意思是它是否会返回到其他控制器/操作,以及单击“提交”后到底发生了什么?它是在同一页上吗?还要检查浏览器控制台中是否有客户端错误。控制器名称为“User”,与调用视图的位置相同。您是否在操作中检查断点以查看是否找到该用户?根据您发布的代码,如果用户未找到相同的视图,则该视图将呈现刷新。因此,如果找不到用户,请返回您收到的要查看的
user
模型。您的视图中的类型是否正确您有“FinancialManagement.Models.user”我猜您控制器中的用户是身份用户类型提交表单时,您显示的代码将点击
Login()
post方法。但它永远不会转到
Index()
方法(或任何其他标记为
[Authorize]
的方法),因为
LogIn()
方法中的代码不授权用户。以纯文本形式存储密码是一种可怕的做法!问题是从视图返回到控制器。而不是从控制器查看
return View("~/Views/FolderName/ViewName.cshtml");