我想学ASP.net MVC与web表单的长时间运行之后,所以道歉,如果我是令人困惑的事情。 我无法超越了简单的编辑页每模型结构。 我公司员工,谁是xrefed到项目,我想编辑这一切都在一个页面上。
我有一个雇员的模型:
public class Employee
{
public string UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<ProjectXref> Projects { get; set; }
}
这是我的ProjectXref模型:
public class ProjectXref
{
public Project Project { get; set; }
public string Role { get; set; }
}
我创建了一个编辑模板的ProjectXref:
@model Relationships.Models.ProjectXref
<tr>
<td><span class="h3"> @Model.Project.ProjectName </span> </td>
<td>@Html.EditorFor(model => model.Role)</td>
<td>
@Html.HiddenFor(model => model.Project.ProjectKey)
<a class="btnDel" > </a>
</td>
</tr>
......在我的员工编辑的看法,我只是用EditorFor呈现TR行对我的员工与相关联的每个项目。
@Html.EditorFor(model => model.Projects)
我坚持用现在给做这些。 我开始了一些jQuery的删除了我的ProjectXref:
$(".btnDel").live("click", function () {
$(this).parents('tr').remove();
return false;
});
这看起来不错,但如果我删除的第一个项目,然后提交,无以下项目在我的帖子出现。 我认为这与任何魔法结合是怎么回事做; 我的“Projects_0__Title”现场丢失,所以MVC跳过试图绑定别的。
我的目标:我想修改我的项目名单我的网页上动态,这意味着删除项目的能力,增加新的项目,或编辑项目(改变雇员相对于项目中的作用)。 我错在试图让MVC做到这一点? 随着我见过的教程,最希望你编辑和添加新的ProjectXrefs每一个单独的页面,但是,似乎是坏的UI。
在我的脑海里,我希望能够为新ProjectXref编辑HTML代码添加到我的形式,当形式发布,有ASP.net将其识别为一个新的ProjectXref并绑定它是这样。 与此同时,如果我删除了关联到我现有的ProjectXref领域,我希望ASP.net认识到,我ProjectXrefs的一个领域,现在不见了,因此删除ProjectXref。 我要去打倒EditorTemplates在错误的道路?
编辑:我的解决办法
由于@Parv夏尔马,我结束了创建一个新的属性上我的课:
public string ProjectsJson
{
get { return JsonConvert.SerializeObject(Projects); }
set { Projects = JsonConvert.DeserializeObject<List<ProjectXref>>(value); }
}
然后我把它加入到我作为一个隐藏的看法:
@Html.HiddenFor(model => model.ProjectsJson)
然后我用AngularJS(必须学会一个反正)从我场阅读JSON在我的UI呈现它。