私はMVCプロジェクトでデータ注釈を使用しようとしています。データ注釈mvc
モデルを作成し、適切な注釈をすべて追加しました。私は私のビューとコントローラを持っていて、とても多くの方法を試みましたが、私は結果を得られませんでした。
[送信]ボタンをクリックすると、検証が実行されましたが、メッセージが表示されず、エラーが表示されて解決されませんでした。
モデル
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace AllExamples.DTO
{
public class EmployeeViewModel
{
public List<EmployeeInfo> objemployeeinfoList { get; set; }
public EmployeeInfo objemployeeinfo { get; set; }
}
public class EmployeeInfo
{
public int EmployeeID { get; set; }
[Display(Name = "Employee name")]
[Required (ErrorMessage ="Employee name required.")]
public string EmployeeName { get; set; }
[Required(ErrorMessage = "Email id required.")]
public string EmailID { get; set; }
[Required(ErrorMessage = "Contact Number required.")]
public string ContactNumber { get; set; }
public string Department { get; set; }
public string EmployeeType { get; set; }
public string Roles { get; set; }
}
public class BillingInfo
{
public int BillingID { get; set; }
public string BillingName { get; set; }
}
public class NonBillingInfo
{
public int nonbillingId { get; set; }
public string Nonbillingname { get; set; }
}
}
Index.cshtml
@model AllExamples.DTO.EmployeeViewModel
@{
ViewBag.Title = "Home Page";
}
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@*@Html.AntiForgeryToken()*@
@Html.ValidationSummary(false)
<div class="form-group">
@Html.Label("Employee Name", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.objemployeeinfo.EmployeeName, new { @class = "form-control", Name = "EmployeeName" })
@Html.ValidationMessageFor(m => m.objemployeeinfo.EmployeeName)
</div>
</div>
<div class="form-group">
@Html.Label("Email ID", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.objemployeeinfo.EmailID, new { @class = "form-control",Name= "EmailID" })
@Html.ValidationMessageFor(m => m.objemployeeinfo.EmailID)
</div>
</div>
<div class="form-group">
@Html.Label("Contact Number", new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.objemployeeinfo.ContactNumber, new { @class = "form-control", Name = "ContactNumber" })
@Html.ValidationMessageFor(m => m.objemployeeinfo.ContactNumber)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Save" />
</div>
</div>
}
web.configファイル
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
いずれかは、hを助けてくださいこの問題を解決するために、私は逃したものを手に入れませんでしたか?
彼らはもはや検証のモデルと一致していないので、 '新しい{NAME = "EmployeeName" は、'} 'フォームコントロールの' name'の属性を変更しているので'ValidationMessageFor()'によって生成されたメッセージプレースホルダです。 **決して 'HtmlHelper'メソッドを使うとき' name'属性を変更しようとしないでください。ビューモデルにデータモデルが含まれていない - [MVCのViewModelとは何ですか?](https://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –
ありがとうございます。 –
間違った回答を受け入れないでください。他のユーザーを誤解するだけです。 –