【发布时间】:2017-12-29 23:41:23
【问题描述】:
我正在创建一个登录窗口,在输入错误凭据后按下提交按钮时出现问题。 这是我的看法
@model ProjectyMcProjectface.Models.RegisteredUser
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Login page</title>
@Styles.Render("~/Content/LoginVisuals")
</head>
<body>
<div id="LoginWrapper">
@using (Html.BeginForm("Authorize", "Login",FormMethod.Post))
{
<table id="LoginTable">
<tr>
<td>@Html.LabelFor(model => model.UserName)</td>
<td>@Html.EditorFor(model => model.UserName)</td>
</tr>
<tr>
<td></td>
<td>@Html.ValidationMessageFor(model => model.UserName)</td>
</tr>
<tr>
<td>@Html.LabelFor(model => model.PassWord)</td>
<td>@Html.EditorFor(model => model.PassWord)</td>
</tr>
<tr>
<td></td>
<td>@Html.ValidationMessageFor(model => model.PassWord)</td>
</tr>
<tr>
<td colspan="2"><label class="field-validation-error">@Html.DisplayFor(model => model.LoginErrorMessage)</label></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" />
<input type="reset" value="Clear" />
</td>
</tr>
</table>
}
</div>
@Scripts.Render("~/bundles/ValidationScripts")
</body>
</html>
我的注册用户模型
public partial class RegisteredUser
{
public int Id { get; set; }
[DisplayName("User Name")]
[Required(ErrorMessage = "This field is required to be filled")]
public string UserName { get; set; }
[DataType(DataType.Password)]
[DisplayName("Password")]
[Required(ErrorMessage = "This field is required to be filled")]
public string PassWord { get; set; }
public string LoginErrorMessage { get; set; }
}
还有我的登录控制器
[HttpPost]
public ActionResult Authorize(ProjectyMcProjectface.Models.RegisteredUser userModel)
{
using (InternalDBEntities1 db = new InternalDBEntities1())
{
var userDetails = db.RegisteredUsers.Where(x => x.UserName == userModel.UserName && x.PassWord == userModel.PassWord).FirstOrDefault();
if (userDetails == null)
{
userModel.LoginErrorMessage = "Your password or user name is incorrect";
return View("Index", "Login", userModel);
}
}
return View();
}
错误在行中触发
var userDetails = db.RegisteredUsers.Where(x => x.UserName == userModel.UserName && x.PassWord == userModel.PassWord).FirstOrDefault();
然后说
CLR 类型到 EDM 类型的映射是不明确的,因为多个 CLR 类型与 EDM 类型“RegisteredUser”匹配。以前找到的CLR类型 'ProjectyMcProjectface.RegisteredUser',新发现的 CLR 类型 'ProjectyMcProjectface.Models.RegisteredUser'。'
我该如何解决这个问题?
【问题讨论】:
-
从您发布的错误来看,您似乎有两个类的冲突。他们都被命名为RegisteredUser。一个位于
ProjectyMcProjectface,另一个位于ProjectyMcProjectface.Models。这就是造成歧义的原因。我会建议你重命名其中一个 -
@jamiedanq 是的,谢谢,成功了!
-
很高兴它解决了!
-
能否将我的评论标记为有帮助
-
@jamiedanq 恐怕我不知道怎么做
标签: c# asp.net-mvc entity-framework edmx