@model HelloWorldMvcApp.PersonViewModel
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 101 Template</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
.field-validation-error {
<div class="col-md-6 col-md-offset-3">
@using (Html.BeginForm())
@Html.LabelFor(m => m.PersonName)
@Html.TextBoxFor(m => m.PersonName, new { @class="form-control" })
@Html.ValidationMessageFor(m => m.PersonName)
<th>@Html.DisplayNameFor(m => m.JobSplits.FirstOrDefault().JobRole)</th>
<th>@Html.DisplayNameFor(m => m.JobSplits.FirstOrDefault().SplitPercentage)</th>
@for(int i = 0; i < Model.JobSplits.Count; i++)
<input type="hidden" name="JobSplits.Index" value="@i">
@Html.TextBoxFor(m => m.JobSplits[i].JobRole, new { @class="form-control" })
@Html.ValidationMessageFor(m => m.JobSplits[i].JobRole)
@Html.TextBoxFor(m => m.JobSplits[i].SplitPercentage, new { @class="form-control" })
@Html.ValidationMessageFor(m => m.JobSplits[i].SplitPercentage)
<button type="button" class="btn delete">Delete</button>
<button type="button" id="add" class="btn">Add Job</button>
<button type="submit" class="btn btn-success submit">Save</button>
<table id="newrow" style="display:none;">
<input type="hidden" name="JobSplits.Index" value="%">
<input class="form-control" data-val="true" data-val-required="The JobRole field is required." name="JobSplits[#].JobRole" type="text" value="">
<span class="field-validation-valid" data-valmsg-for="JobSplits[#].JobRole" data-valmsg-replace="true"></span>
<input class="form-control" data-val="true" data-val-number="The field SplitPercentage must be a number." data-val-required="The SplitPercentage field is required." name="JobSplits[#].SplitPercentage" type="text" value="0">
<span class="field-validation-valid" data-valmsg-for="JobSplits[#].SplitPercentage" data-valmsg-replace="true"></span>
<button type="button" class="btn delete">Delete</button>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
<script type="text/javascript">
var table = $('#jobsplits tbody');
var newrow= $('#newrow');
$('#add').click(function () {
var index = (new Date()).getTime();
var clone = newrow.find('tr').clone();
clone.html($(clone).html().replace(/\[#\]/g, '[' + index + ']'));
clone.html($(clone).html().replace(/"%"/g, '"' + index + '"'));
form.data('validator', null);
$.validator.unobtrusive.parse(form)
$('#jobsplits').on('click', '.delete', function() {
$(this).closest('tr').remove();