【发布时间】:2017-12-04 14:27:03
【问题描述】:
大家好消息。我有一个小问题。我无法在表格中显示数据。我将代码移到 HomeContoller 并修复了空对象的错误。
家庭控制器
using NarkomApp.Models;
使用 System.Collections.Generic; 使用 System.Web.Mvc;
命名空间 NarkomApp.Controllers { 公共类 HomeController : 控制器 { NarkomEntities dbModel = new NarkomEntities();
public ActionResult Index()
{
return View();
}
public ActionResult PersonalPage()
{
PersonalPageModel personalPageModel = new PersonalPageModel();
List<USERS> list_Users = new List<USERS>();
List<PERSONAL_INF> list_PersonalInf = new List<PERSONAL_INF>();
personalPageModel.list_Users = list_Users;
personalPageModel.list_PersonalInf = list_PersonalInf;
personalPageModel.ChangePasswordErrorMessage = "Новый пароль совпадает со старым!";
return View("~/Views/Home/PersonalPage.cshtml", personalPageModel);
}
public ActionResult AddOrEdit()
{
return View();
}
public ActionResult LogOut()
{
int iIdUser = (int)Session["iIdUsers"];
Session.Abandon();
return RedirectToAction("Index", "Home");
}
}
查看代码:
@model NarkomApp.Models.PersonalPageModel
@if (Model != null)
{
<table border="0">
<tr>
<td colspan="2"><h2>Персональные данные</h2></td>
<td></td>
</tr>
@foreach (var personalInf in Model.list_PersonalInf)
{
<tr>
<td><p>Город:</p></td>
<td>@Html.Label(@personalInf.vCity, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>ФИО:</p></td>
<td>@Html.Label(@personalInf.vFIO, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Индекс:</p></td>
<td>@Html.Label(@personalInf.vIndex, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Населенный пункт:</p></td>
<td>@Html.Label(personalInf.vLocality, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Улица:</p></td>
<
<td>@Html.Label(@personalInf.vStreet, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Дом/корпус/строение:</p></td>
<td>@Html.Label(@personalInf.vHome, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Квартира:</p></td>
<
<td>@Html.Label(@personalInf.vApartment, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Телефон:</p></td>
<td>@Html.Label(@personalInf.vPhone, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
}
<tr>
<td colspan="2"><hr /></td>
<td></td>
</tr>
<tr>
<td colspan="2"><h2>Форма изменения данных</h2></td>
<td></td>
</tr>
@foreach (var personalInf in Model.list_PersonalInf)
{
<tr>
<td><p>Город:</p></td>
<td>@Html.Editor(@personalInf.vCity, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>ФИО:</p></td>
<td>@Html.Editor(@personalInf.vFIO, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Индекс:</p></td>
<td>@Html.Editor(@personalInf.vIndex, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Населенный пункт:</p></td>
<td>@Html.Editor(personalInf.vLocality, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Улица:</p></td>
<
<td>@Html.Editor(@personalInf.vStreet, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Дом/корпус/строение:</p></td>
<td>@Html.Editor(@personalInf.vHome, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Квартира:</p></td>
<
<td>@Html.Editor(@personalInf.vApartment, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><p>Телефон:</p></td>
<td>@Html.Editor(@personalInf.vPhone, new { htmlAttributes = new { @class = "form-control" } })</td>
</tr>
<tr>
<td><input type="submit" value="Изменить" class="btn-submit" /></td>
<td><input type="reset" value="Очистка" class="btn-submit" /></td>
</tr>
}
<tr>
<td colspan="2"><hr /></td>
<td></td>
</tr>
<tr>
<td colspan="2"><h2>Форма изменения пароля</h2></td>
<td></td>
</tr>
@foreach (var users in Model.list_Users)
{
<tr>
<td><p>Старый пароль:</p></td>
<td>
@Html.Editor(Model.NewPassword, new { htmlAttributes = new { @class = "form-control" } })<br />
@Html.ValidationMessage(Model.NewPassword, "", new { @class = "text-danger" })
</td>
</tr>
<tr>
<td><p>Новый пароль:</p></td>
<td>
@Html.Editor(@users.vPassword, new { htmlAttributes = new { @class = "form-control" } })<br />
@Html.ValidationMessage(@users.vPassword, "", new { @class = "text-danger" })
</td>
</tr>
<tr>
<td><p>Подтвердите пароль:</p></td>
<td>
@Html.Editor(@users.ConfirmPassword, new { htmlAttributes = new { @class = "form-control" } })<br />
@Html.ValidationMessage(@users.ConfirmPassword, "", new { @class = "text-danger" })
</td>
</tr>
}
<tr>
<td><input type="submit" value="Изменить" class="btn-submit" /></td>
<td><input type="reset" value="Очистка" class="btn-submit" /></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
<td></td>
</tr>
<tr>
<td colspan="2"><p>Подписаться на рассылку</p> @Html.CheckBox("cbIsSendInf", true)</td>
<td></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
<td></td>
</tr>
<tr>
<td colspan="2">@Html.ActionLink("Выход из аккаунта!", "LogOut", "Home", null, new { @class = "form-control" })</td>
<td></td>
</tr>
</table>
} @* End if *@
else
{
<h2>Проблема с сессией, пустой объект!</h2>
}
【问题讨论】:
-
查看您的视图模型会有所帮助
-
您在这里所做的并不完全清楚,但看起来您正在控制器本身上创建视图模型。不要那样做。在 action 方法中创建一个实例。控制器会随每个请求进行实例化和处理,因此如果您认为可以在操作之间共享此实例,那您就错了。
标签: c# asp.net-mvc asp.net-mvc-4 view