Iam new in mvc i want to create performance object using create page in mvc and i have models called "Performance" ,"Performer" and "Performerperformance" i want to create performance with multiple performer so i create new custom model and use it in create view but when i change data in page and click save button model is return to create function with null value i don't know what is the problem
create View :
@model eltazkara_admin.ViewModels.CustomPerformancePerformersModel
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
        <div class="form-group">
            @Html.LabelFor(model => model.performanceObj.EventId, "Event", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("EventId", (IEnumerable<SelectListItem>)ViewBag.EventDropDownList, htmlAttributes: new { @class = "form-control select2" })
                @Html.ValidationMessageFor(model => model.performanceObj.EventId, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.performanceObj.VenueId, "Venue", htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownList("VenueId", (IEnumerable<SelectListItem>)ViewBag.EventDropDownList, htmlAttributes: new { @class = "form-control select2" })
                @Html.ValidationMessageFor(model => model.performanceObj.VenueId, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.performanceObj.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.performanceObj.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.performanceObj.Name, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">              
                @Html.EditorFor(model => model.performanceObj.StartDate, new { htmlAttributes = new { @class = "form-control", id = "startDate", type = "hidden" } })
                @Html.EditorFor(model => model.performanceObj.EndDate, new { htmlAttributes = new { @class = "form-control", id = "endDate", type = "hidden" } })
            </div>
        </div>
        <div class="form-group">
            @Html.LabelFor(model => model.performanceObj.Views, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.performanceObj.Views, new { htmlAttributes = new { @class = "form-control", @Value = "0" } })
                @Html.ValidationMessageFor(model => model.performanceObj.Views, "", new { @class = "text-danger" })
            </div>
        </div>
        @using (Html.BeginForm("AddPerformerToNewPerformance", "Performances"))
        {
            <div class="form-group">
                @Html.LabelFor(model => model.AvailablePerformers, "Performers", htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    <br />
                    <select name="SelectedPerformer" id="SelectedPerformer">
                        @foreach (var item in Model.AvailablePerformers)
                        {
                            <option value="@item.Value">@item.Text</option>
                        }
                    </select>
                    <input type="submit" value="Add Performer" class="btn btn-default" />
                </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>
    <h4>
        @Html.ActionLink("Back to List", "Index")
    </h4>
</div>
create function in controller :
  public ActionResult Create()
    {
        CustomPerformancePerformersModel cppm = new CustomPerformancePerformersModel();
        var availablePerformers = db.Performers.Where(x => x.Deleted != true).ToList();
        cppm.AvailablePerformers = availablePerformers.Select(x => new SelectListItem
        {
            Text = x.Name,
            Value = x.PerformerId.ToString()
        }).ToList();
        ViewBag.EventId = new SelectList(db.Events, "EventId", "Name");
        ViewBag.VenueId = new SelectList(db.Venues, "VenueId", "Name");
        ViewBag.PerformerId = new SelectList(db.Performers, "PerformerId", "Name");
    }
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(CustomPerformancePerformersModel customperformance)
    {
        if (ModelState.IsValid)
        {
            customperformance.performanceObj.Score = customperformance.performanceObj.Views;
            db.Performances.Add(customperformance.performanceObj);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        ViewBag.EventId = new SelectList(db.Events, "EventId", "Name", customperformance.performanceObj.EventId);
        ViewBag.VenueId = new SelectList(db.Venues, "VenueId", "Name", customperformance.performanceObj.VenueId);
        ViewBag.Performers = new SelectList(db.PerformerPerformances, "PerformersId", "Name", customperformance.performanceObj.PerformerPerformances);
        return View(customperformance);
    }
and the customviewmodel :
  using eltazkara_admin.Models;
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.Mvc;
namespace eltazkara_admin.ViewModels
 {
     public class CustomPerformancePerformersModel
    {
        public Performance performanceObj;
        public List<SelectListItem> AvailablePerformers { get; set; }
        public string selectedPerformer { get; set; }
      }
    }
