我有一个简单的登录屏幕。单击按钮我想调用Home Controller中定义的LoginUser操作。我收到HTTP 404,资源未找到错误。单击按钮后的地址栏显示“http://localhost:13805/Home/LoginUser”。我不确定我在这里做错了什么。非常感谢任何帮助。
这是按钮:
<button type="submit" onclick="location.href='@Url.Action("LoginUser", "Home")'" class="btn btn-default">Submit</button>
以下是Home controller中定义的操作:
[HttpPost]
public ActionResult LoginUser(string username, string password)
{
bool loginSuccess = false;
if (!HttpContext.User.Identity.IsAuthenticated)
{
AuthenticationMode = System.Configuration.ConfigurationManager.AppSettings["AuthenticationMode"];
if (AuthenticationMode.Equals("Forms"))
{
int userId = CheckUserLogin(username);
if (userId > 0)
{
CurrentUserId = userId;
FormsAuthentication.SetAuthCookie(username, false);
LoadMenu();
loginSuccess = true;
}
else
{
loginSuccess = false;
}
}
else
{
loginSuccess = false;
}
}
else
{
loginSuccess = true;
}
if (loginSuccess)
{
return RedirectToAction("Index", "home");
}
else
{
return RedirectToAction("Login", "home");
}
}
答案 0 :(得分:1)
您的提交按钮不应有onclick操作。
它应该提交一个表格,其行动是您的终点(&#34; LoginUser&#34;,&#34; Home&#34;),您已经正确设置接受HttpPost
你需要一个这样的表格:
@using (Html.BeginForm("LoginUser", "Home", FormMethod.Post)){
<!-- form here -->
<button type="submit" class="btn btn-default">Submit</button>
}
答案 1 :(得分:-1)
或者,您可以将按钮类型从“提交”更改为“按钮”,然后您的代码应该按原样运行。
以下是我的工作代码示例