C# 在视图中打印验证消息时出现问题
我在打印验证时遇到了一个问题 在视图中输入字段 我有一个视图,希望用户在其中填写表单。以这种形式我 在用户可以继续之前,需要验证输入。在我的数据库模型中 我对如何验证代码设置了不同的规则。在里面 我尝试使用显示错误消息的视图 Html.Validationsummary(true) 它在早期的一个项目中工作得非常好。但这次不是 下面是DbModel类 变量名是挪威语的,没关系。代码仍然有效 在任何语言中都相同:) 我的控制器 那景色呢 谁能帮我找出我做错了什么C# 在视图中打印验证消息时出现问题,c#,asp.net-mvc,entity-framework,validation,razor,C#,Asp.net Mvc,Entity Framework,Validation,Razor,我在打印验证时遇到了一个问题 在视图中输入字段 我有一个视图,希望用户在其中填写表单。以这种形式我 在用户可以继续之前,需要验证输入。在我的数据库模型中 我对如何验证代码设置了不同的规则。在里面 我尝试使用显示错误消息的视图 Html.Validationsummary(true) 它在早期的一个项目中工作得非常好。但这次不是 下面是DbModel类 变量名是挪威语的,没关系。代码仍然有效 在任何语言中都相同:) 我的控制器 那景色呢 谁能帮我找出我做错了什么 Yo创建新块try catch D
Yo创建新块try catch DbEntityValidationException:
catch (DbEntityValidationException exDbEntityValidationException)
例如:
catch (DbEntityValidationException exDbEntityValidationException)
{
DbEntityValidationException exval = exDbEntityValidationException;
StringBuilder sb = new StringBuilder();
foreach (var excep in exval.EntityValidationErrors)
{
sb.AppendFormat("YourField: {0} {1}",((YourEntityType)excep.Entry.Entity).YourField, Environment.NewLine);
excep.ValidationErrors.ToList().ForEach(v => sb.AppendFormat(" Field: {0} - {1}{2}", v.PropertyName, v.ErrorMessage, Environment.NewLine));
}
System.Diagnostics.Debug.Print(sb.ToString());
}
@model Nettbutikk_v1.Models.Kjop
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Registrering</title>
</head>
<body>
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Kjop</legend>
<div class="editor-label">
@Html.LabelFor(model => model.fornavn)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.fornavn)
@Html.ValidationMessageFor(model => model.fornavn)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.etternavn)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.etternavn)
@Html.ValidationMessageFor(model => model.etternavn)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.epost)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.epost)
@Html.ValidationMessageFor(model => model.epost)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.telefon)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.telefon)
@Html.ValidationMessageFor(model => model.telefon)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.adresse)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.adresse)
@Html.ValidationMessageFor(model => model.adresse)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.postnr)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.postnr)
@Html.ValidationMessageFor(model => model.postnr)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.poststed)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.poststed)
@Html.ValidationMessageFor(model => model.poststed)
</div>
<p>
<input type="submit" value="Registrer" />
</p>
</fieldset>
}
</body>
</html>
System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
catch (DbEntityValidationException exDbEntityValidationException)
catch (DbEntityValidationException exDbEntityValidationException)
{
DbEntityValidationException exval = exDbEntityValidationException;
StringBuilder sb = new StringBuilder();
foreach (var excep in exval.EntityValidationErrors)
{
sb.AppendFormat("YourField: {0} {1}",((YourEntityType)excep.Entry.Entity).YourField, Environment.NewLine);
excep.ValidationErrors.ToList().ForEach(v => sb.AppendFormat(" Field: {0} - {1}{2}", v.PropertyName, v.ErrorMessage, Environment.NewLine));
}
System.Diagnostics.Debug.Print(sb.ToString());
}