Bonsoir à tous, j'espère, tout le monde peut m'aider avec le filtre de la plage horaire sur la partie vue. Voici mon modèle:Fonctionnalité de filtre de recherche de plage de dates dans asp.net mvc 5?
public class Student
{
public int ID { get; set; }
public string StudentName { get; set; }
public int CourseId { get; set; }
public virtual Course Course { get; set; }
public DateTime CurrentDate { get; set; }
public Student()
{
CurrentDate = DateTime.Now;
}
}
J'utilise des modèles d'affichage pour l'affichage, est maintenant ici mon contrôleur:
public ActionResult Index(DateTime? startdate, DateTime? enddate)
{
var rangeData = db.Students.Where(x => x.CurrentDate >= startdate && x.CurrentDate <= enddate).ToList();
return View(rangeData);
}
Maintenant, j'ai quelques problèmes avec vue ainsi que dans le contrôleur.
Voici ma question: Comment transmettre la date de début et de fin au contrôleur pour obtenir des commandes avec des propriétés définies? Voici ma vue et ce que je fais mal?
<p>
@Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "Students", FormMethod.Get))
{
<fieldset>
<legend>Search criteria</legend>
@Html.Label("StartDate", "Start Date:")
<input class="startdate" id="startdate" name="startdate" type="date" value="">
@Html.Label("enddate", "End Date:")
<input class="startdate" id="enddate" name="enddate" type="date" value="">
<input type="submit" value="Apply" />
</fieldset>
}
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.StudentName)
</th>
<th>
@Html.DisplayNameFor(model => model.Address)
</th>
<th>
@Html.DisplayNameFor(model => model.Gender)
</th>
<th>
@Html.DisplayNameFor(model => model.MobileNo)
</th>
<th>
@Html.DisplayNameFor(model => model.Course)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.StudentName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
<td>
@Html.DisplayFor(modelItem => item.Gender)
</td>
<td>
@Html.DisplayFor(modelItem => item.MobileNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Course.CourseName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
Pourquoi avez-vous 2 formulaires séparés et la méthode du 2ème contrôleur. Tous vos contrôles devraient être dans une forme et poster à la première méthode. Et ne vous créez pas d'entrées comme ça. Utilisez une vue modèles avec ces propriétés ('SearchBy',' StartDate' etc. et avec une propriété 'List' pour la collection filtrée –
Pouvez-vous s'il vous plaît afficher cela par code dans le contrôleur et afficher –
quel est le problème exact que vous avez en vue et contrôleur? – Ravi