#c# #asp.net-mvc #visual-studio-code
Вопрос:
Страница пользователя веб-сайта должна отображать информацию о пользователе, включая идентификатор, имя, адрес электронной почты, контакт и время последнего входа в систему. Все данные хорошо отображаются на веб-странице, за исключением контактов.
Это контроллер пользовательского дисплея
[Authorize]
public IActionResult Users()
{
string userid = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
List<SysUser> list = DBUtl.GetList<SysUser>("SELECT * FROM Investor WHERE InvestorId = '{0}'", userid); //WHERE UserRole = 'member'
return View(list);
}
Эта модель пользователя
using Microsoft.AspNetCore.Mvc;
using System;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace DDemo.Models
{
public class SysUser
{
[Required(ErrorMessage = "Please enter User ID")]
[Remote(action: "VerifyUserID", controller: "Account")]
public string InvestorId { get; set; }
[Required(ErrorMessage = "Please enter Password")]
[StringLength(20, MinimumLength = 5, ErrorMessage = "Password must be 5 characters or more")]
public string InvestorPw { get; set; }
[Compare("InvestorPw", ErrorMessage = "Passwords do not match")]
public string InvestorPw2 { get; set; }
[Required(ErrorMessage = "Please enter Full Name")]
public string FullName { get; set; }
[Required(ErrorMessage = "Please enter Email")]
[DataType(DataType.EmailAddress)]
[EmailAddress(ErrorMessage = "Invalid Email")]
public string Email { get; set; } //@ sign
[Required(ErrorMessage = "Please enter Contact Number")]
[RegularExpression(@"d{8}", ErrorMessage = "Please enter 8 digit number")]
public string Contact { get; set; }
public DateTime LastLogin { get; set; }
}
}
Это точка зрения
@model List<SysUser>
@if (TempData["Message"] != null)
{
<div class="alert alert-@TempData["MsgType"]">
@TempData["Message"]
</div>
}
<h2>Investors</h2>
<table class="table table-condensed table-hover">
<tr>
<th scope="col">ID</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Contact</th>
<th scope="col">Last Login</th>
<th scope="col">Action</th>
</tr>
@foreach (SysUser user in Model)
{
<tr>
<td>@user.InvestorId</td>
<td>@user.FullName</td>
<td>@user.Email</td>
<td>@user.Contact</td>
<td>@String.Format("{0:yyyy-MM-dd hh:mm:ss}", user.LastLogin)</td>
<td>
<a asp-controller="Account"
asp-action="UserUpdate"
asp-route-id="@user.InvestorId">
Update
</a>
<!--|
<a asp-controller="Account"
asp-action="Delete"
asp-route-id="@user.InvestorId"
onclick="return confirm('Delete User [@user.FullName]')">
Delete
</a>-->
</td>
</tr>
}
</table>
Как и на скриншоте, другие значения отображаются правильно, за исключением контакта
Комментарии:
1. Вы проверили данные? Есть ли значение для этого идентификатора пользователя, также убедитесь, что имя столбца совпадает с именем свойства «Контакт» в базе данных
2. Какое значение имеет «список», когда возвращается ваш результат действия?
3. Вы отладили код? какое значение в поле контакт? можете ли вы, пожалуйста, сказать ? я вижу, что в поле «Контакт» есть проверка, если значение неверно, поле останется пустым.