j'ai une action dans mon EmployeeController commeASP.NET MVC Cant Get Listed données de la vue au contrôleur
public ActionResult approvalList()
{
int sessionUser = Convert.ToInt32(Session["LogedUserID"]);
var listForApproval = db.TblExpenseItem.Where(k => k.UserID.Equals(sessionUser));
return View(listForApproval.ToList());
}
i ajouté une vue avec le modèle "Liste" et classe modèle "tableFromMyDB". (I mis @ en utilisant (Html.BeginForm) et le bouton d'envoi moi-même.)
@model IEnumerable<ExpenseApplication.Models.TblExpenseItem>
@{
ViewBag.Title = "approvalList";
}
<h2>approvalList</h2>
<p>
@Html.ActionLink("Create New Expense", "ExpenseReport", "Employee")
</p>
@using (Html.BeginForm("approvalList", "Employee", FormMethod.Post))
{
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.ExpenseDate)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.Amount)
</th>
<th>
@Html.DisplayNameFor(model => model.isSended)
</th>
<th>
@Html.DisplayNameFor(model => model.isRejected)
</th>
<th>
@Html.DisplayNameFor(model => model.TblCategory.CtgName)
</th>
<th>
@Html.DisplayNameFor(model => model.TblUsers.UserName)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
if (item.isSended == false)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.ExpenseDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Amount)
</td>
<td>
@Html.DisplayFor(modelItem => item.isSended)
</td>
<td>
@Html.DisplayFor(modelItem => item.isRejected)
</td>
<td>
@Html.DisplayFor(modelItem => item.TblCategory.CtgName)
</td>
<td>
@Html.DisplayFor(modelItem => item.TblUsers.UserName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.ExpItemID }) |
@Html.ActionLink("Details", "Details", new { id = item.ExpItemID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ExpItemID })
</td>
</tr>
}
}
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<th>Total Amount:</th>
<td>
@Model.Sum(x => x.Amount)
</td>
</tr>
</table>
<div class="col-md-offset-8 col-md-12">
<input type="submit" value="Send List To Manager" class="btn btn-default" />
</div>
}
l'action HttpPost dans mon contrôleur. Lorsque j'appuie sur le bouton "Soumettre", cela lance nullReferenceException sur expItemList.
J'ai fait ma recherche et trouvé des solutions.Mais ils ont tous sur créer, éditer etc ..
Je veux juste la liste pour voir ce qui est dans ma table, puis juste le soumettre.Après cela, je vais obtenir des données avec foreach de expItemList.
btw je suis nouveau à MVC et c'est ma première question là, donc je suis désolé si j'ai fait une erreur.
Pourquoi envoyez-vous le formulaire si l'utilisateur ne modifie pas ou n'ajoute pas à cette liste. Votre code actuel consiste simplement à imprimer les valeurs à l'écran. Il n'y a pas d'éléments de formulaire d'entrée! – Shyju
Je vais changer une valeur comme isSended, isRejected après que l'utilisateur l'a soumis et je mettrai à jour la table avec de nouvelles valeurs. –
Où changez-vous? Est-ce l'utilisateur qui le change dans l'interface utilisateur? alors vous avez besoin d'éléments de formulaire d'entrée pour cela (vous ne les avez pas maintenant). Si c'est dans le code du serveur, je suggère de le lire de nouveau à partir de la base de données (de la même façon que vous lisez dans l'action GET) et de mettre à jour au besoin. – Shyju