我目前在模型中遇到错误,说它无法从字符串转换为模型。一旦我尝试添加一个新的数据库表条目,就会发生这种情况。我正在使用 SQL Server,而对于前端,我正在使用 c# mvc3 razor view。
模型:
namespace NBProfiler.Model
{
using System;
using System.Collections.Generic;
public partial class PersonContempancy
{
public int Id { get; set; }
public int PersonId { get; set; }
public Nullable<System.DateTime> AttainedDate { get; set; }
public int FrameworkId { get; set; }
public int ContempancyCategoryId { get; set; }
public int ContempancyId { get; set; }
public int ContempancyLevelId { get; set; }
public int FrameworkLevelId { get; set; }
public virtual Contempancy Contempancy { get; set; }
public virtual ContempancyCategory ContempancyCategory { get; set; }
public virtual FrameworkLevel FrameworkLevel { get; set; }
public virtual Framework Framework { get; set; }
public virtual Person Person { get; set; }
public virtual ContempancyLevel ContempancyLevel { get; set; }
}
}
控制器:
public ActionResult Create()
{
ViewBag.Contepancies = db.Contempancies.ToList();
ViewBag.ContempancyCategory = db.ContempancyCategories.ToList();
ViewBag.ContempancyLevel = db.ContempancyLevels.ToList();
ViewBag.FrameworkLevel = db.FrameworkLevels.ToList() ;
ViewBag.Person = db.People.ToList();
ViewBag.Framework = db.Frameworks.ToList();
return View();
}
//
// POST: /Mapping/Create
[HttpPost]
public ActionResult Create(PersonContempancy personcontempancy)
{
if (ModelState.IsValid)
{
db.PersonContempancies.Add(personcontempancy);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.Contepancies = db.Contempancies.ToList();
ViewBag.ContempancyCategory = db.ContempancyCategories.ToList();
ViewBag.ContempancyLevel = db.ContempancyLevels.ToList();
ViewBag.FrameworkLevel = db.FrameworkLevels.ToList();
ViewBag.Person = db.People.ToList();
ViewBag.Framework = db.Frameworks.ToList();
return View(personcontempancy);
}
最后查看:(我已经从视图中删除了其他项目,因为它们都是相同的代码,所以为了缩短它在这里我删除了它)
@model NBProfiler.Model.PersonContempancy
@{
ViewBag.Title = "Create";
}
<h2>Map Skill to Person</h2>
<script src="../../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<link href="../../Content/themes/start/jquery-ui-1.8.22.custom.css" rel="stylesheet"
type="text/css" />
<script src="../../Scripts/jquery-ui-1.8.11.min.js" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>PersonContempancy</legend>
<div class="editor-label">
Name:
</div>
<div class="editor-field">
Html.DropDownListFor(m => m.Person, new SelectList(ViewBag.Person as System.Collections.IEnumerable, "PersonId", "PersonName"), "Choose Name")
</div>
@*<div class="editor-field">*@
<div class="editor-label">
@*@Html.LabelFor(m => m.ContempancyCategory)*@
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.ContempancyCategory, new SelectList(ViewBag.ContempancyCategory as System.Collections.IEnumerable, "ContempancyCategoryId", "ContempancyCategoryName"),"Select", new {id = "category" })
<p>
<input name="submit" type="submit" value="Map Skill" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Show Table", "Index")
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#category").change(function () {
var idCat = $(this).val();
$.getJSON("/Mapping/contempancies", { CategoryID: idCat },
function (MyData) {
var select = $("#contempancy");
select.empty();
$.each(MyData,function(index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});
});
</script>
谢谢!