이상한 오류가 있습니다. SQL Server Management Studio를 사용하여 데이터베이스를 만들었습니다. 모든 기본 키, 외래 키, 고유 설정 및 작동.ASP.NET MVC 생성 된보기가 제대로 작동하지 않습니다.
내가 MVC 프로젝트 생성 모델, 컨트롤러로 데이터베이스를 수입하고, 모든이 튜토리얼의 스탠드로보기 : click
을하지만 검증에 구축 알 수없는 이유로는 외래 키에 대해서만 작동합니다! 다른 모든 유효성 검사 규칙은 Visual Studio에 의해 스캐 폴딩되었습니다.
내가 제공해야하는 코드를 모른다면 언제든지 물어보십시오. 내 질문을 업데이트 할 것입니다.
예 : 사용자 만들기 :
@model magazyn.Models.User
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>User</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.EmployeeNo, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EmployeeNo)
@Html.ValidationMessageFor(model => model.EmployeeNo)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Surname, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Surname)
@Html.ValidationMessageFor(model => model.Surname)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.ContactInfo, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ContactInfo)
@Html.ValidationMessageFor(model => model.ContactInfo)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.RoleId, "RoleId", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("RoleId", String.Empty)
@Html.ValidationMessageFor(model => model.RoleId)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
컨트롤러 :
public ActionResult Create()
{
ViewBag.RoleId = new SelectList(db.Roles, "Id", "RoleName");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
[UserEditAuth]
public ActionResult Create([Bind(Include="Id,EmployeeNo,Name,Surname,ContactInfo,RoleId")] User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.RoleId = new SelectList(db.Roles, "Id", "RoleName", user.RoleId);
return View(user);
}
및 사용자 엔티티 (entityFramework에 의해 생성) :이 때문에
이 경우public partial class User
{
public User()
{
this.DeviceUsages = new HashSet<DeviceUsage>();
}
public int Id { get; set; }
public string EmployeeNo { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string ContactInfo { get; set; }
public int RoleId { get; set; }
public virtual ICollection<DeviceUsage> DeviceUsages { get; set; }
public virtual Role Role { get; set; }
}
만 역할 검증 다른 테이블의 외래 키
보기 중 하나 (예 :보기), 컨트롤러 동작 및 엔티티 중 하나에 대한 소스 코드가 있어야 도움이 될 것입니다 ... – eiximenis
확인. 이 액션에 사용 된 뷰, 컨트롤러 액션 및 엔티티가 추가되었습니다. – szpic