ciao!
ho una pagina con un form di questo tipo:
codice:
@model NuovoPianoLavoroModel
<div class="container div_page_cont div_page_cont_nuovo">
<div class="card">
<div class="card-body">
@Html.ValidationSummary()
@using (Html.BeginForm("PianoLavoro", "Nuovo", FormMethod.Post, new { id = "nuovo_mug_form" }))
{
@Html.AntiForgeryToken()
............
}
</div>
</div>
</div>
@section scripts {
@Scripts.Render("~/js/validation")
}
il model richiamato è questo:
codice:
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespaceModels.PianoLavoro
{
public class NuovoPianoLavoroModel
{
public IEnumerable<SelectListItem> TipologiaPianoLavoro { get; set; }
[Display(Name = "Descrizione")]
public string Descrizione { get; set; }
[Display(Name = "Presidio")]
public string Presidio { get; set; }
[Display(Name = "Tipologia")]
[Range(1, long.MaxValue, ErrorMessage = "Il campo {0} è obbligatorio.")]
public long Tipologia { get; set; }
}
public class PianoLavoroTipo
{
[Display(Name = "Id")]
public long Id { get; set; }
[Display(Name = "Tipologia")]
public string Tipologia { get; set; }
}
}
e questo il controller:
codice:
using Easymatica.Somministrazione.Web.UI.Models.PianoLavoro;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
namespace Controllers
{
public class PianoLavoroController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Nuovo(NuovoPianoLavoroModel model)
{
if (model == null)
{
model = new NuovoPianoLavoroModel();
}
List<PianoLavoroTipo> list = new List<PianoLavoroTipo>
{
new PianoLavoroTipo
{
Id = 1,
Tipologia = "Tipologia 1"
},
new PianoLavoroTipo
{
Id = 2,
Tipologia = "Tipologia 2"
}
};
model.TipologiaPianoLavoro = list.Select(x =>
new SelectListItem()
{
Value = x.Id.ToString(),
Text = x.Tipologia
}
);
return View(model);
}
}
}
quando accedo alla pagina mi compaiono gli errori che i campi sono obbligatori, ma senza inviare il form.
che se si autoinviasse.
avete un'idea del perchè??