Cómo escribir una acción de edición

Estoy tratando de llegar a una acción de edición. Vea a continuación lo que tengo hasta ahora.

ViewModel:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace GlobalUnitedSC.WebUI.Models
{
public sealed class CreateMensPlayerViewModel
{
    //Player profile starts here

    [HiddenInput(DisplayValue=false)]
    public int MensTeamId { get; set; }

    [HiddenInput(DisplayValue = false)]
    public int PlayerId { get; set; }

    [Required]
    public string Name { get; set; }

    [DataType(DataType.Date)]
    public DateTime? BirthDate { get; set; }

    [Required]
    public string Position { get; set; }

    public int ShirtNumber { get; set; }

    [DataType(DataType.Date)]
    public DateTime? Joined { get; set; }

    public string Country { get; set; }

    [DataType(DataType.MultilineText)]
    public string Description { get; set; }

    public byte[] ImageData { get; set; }

    [HiddenInput(DisplayValue = false)]
    public string ImageMimeType { get; set; }

    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }

    [DataType(DataType.PhoneNumber)]
    public string PhoneNumber { get; set; }

    //Player Statistics starts here
    public int Games { get; set; }
    public int Goals { get; set; }
    public int Assists { get; set; }
    public int TotalShots { get; set; }
    public int ShotsOnGoal { get; set; }
    public int FoulsDrawn { get; set; }
    public int FoulsCommitted { get; set; }
    public int Saves { get; set; }
    public int BlueCards { get; set; }
    public int YellowCards { get; set; }
    public int RedCards { get; set; }
 }
}

Crear acciones:

    [HttpGet]
    public ActionResult Create(int mensTeamId)
    {
        new CreateMensPlayerViewModel {MensTeamId = mensTeamId};

        return View();
    }

    [HttpPost]
    public ActionResult Create(CreateMensPlayerViewModel viewModel, HttpPostedFileBase  image)
    {
        if (ModelState.IsValid)
        {
            var mensTeam = _dataSource.MensTeams.Single(t => t.Id == viewModel.MensTeamId);
            var mensPlayer = new MensPlayer
                                 {
                                     Name = viewModel.Name,
                                     BirthDate = viewModel.BirthDate,
                                     Position = viewModel.Position,
                                     ShirtNumber = viewModel.ShirtNumber,
                                     Joined = viewModel.Joined,
                                     Country = viewModel.Country,
                                     Description = viewModel.Description,
                                     EmailAddress = viewModel.EmailAddress,
                                     PhoneNumber = viewModel.PhoneNumber,
                                     Games = viewModel.Games,
                                     Goals = viewModel.Goals,
                                     Assists = viewModel.Assists,
                                     TotalShots = viewModel.TotalShots,
                                     ShotsOnGoal = viewModel.ShotsOnGoal,
                                     FoulsDrawn = viewModel.FoulsDrawn,
                                     FoulsCommitted = viewModel.FoulsCommitted,
                                     Saves = viewModel.Saves,
                                     BlueCards = viewModel.BlueCards,
                                     YellowCards = viewModel.YellowCards,
                                     RedCards = viewModel.RedCards
                                 };

            mensTeam.MensPlayers.Add(mensPlayer);

            _dataSource.Save();
            TempData["message"] = string.Format("{0} has been saved", mensPlayer.Name);

            return RedirectToAction("detail", "MensTeam", new {id =         viewModel.MensTeamId});
        }

        return View(viewModel); 
    }

HttpGet Editar Acción

[HttpGet]
    public ActionResult Edit (int id)
    {
        var mensPlayer = _dataSource.MensPlayers.FirstOrDefault(p => p.Id == id);

        return View(mensPlayer);
    }

Ahora, ¿podría alguien ayudarme con la acción Editar HttpPost, preferiblemente una basada en la clase modelo mencionada anteriormente?

Tenía la esperanza de que tenga algo que ver con la línea de abajo, si esto crea un nuevo jugador, ¿qué podría escribir para editar ese jugador?

var mensPlayer = new MensPlayer {}

Respuestas a la pregunta(2)

Su respuesta a la pregunta