1
我正在創建登錄窗口,輸入錯誤憑證後按提交按鈕時會出現問題。 這是我的看法System.Data.Entity.Core.MetadataException:'指定的模式無效。
@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是的,謝謝,它的工作! –
很高興解決了它! – jamiedanq