Controller里報錯了,"System.NullReferenceException: 'Object reference not set to an instance of an object.'
",具體在37行
using Application.Contracts.Helpers;
using Application.Contracts;
using System;
using System.Web.Mvc;
using Website.Helpers;
using FF.Models.ViewModels.Admin.AutoSuitability;
using Application.BusinessLogic.Model;
using System.Collections.Generic;
using Microsoft.AspNet.Identity;
using Application.BusinessLogic.Repositories;
using FF.Services;
using System.Linq;
using FF.Services.Admin;
using FF.Models.ViewModels.Admin.Security;
using FF.Services.Admin.Services;
namespace Website.Areas.Admin.Controllers
{
public class SecurityController : AdminController
{
private readonly ISecurityIPsWhiteListService _securityIPsWhiteListService;
public SecurityController() { }
public SecurityController(ISecurityIPsWhiteListService securityIPsWhiteListService)
{
_securityIPsWhiteListService = securityIPsWhiteListService;
}
[AuthorizeUser(FFRoles = new string[] { AspNetRoles.ITGuys })]
public ActionResult IPsWhiteList()
{
IEnumerable<SecurityIPsWhiteListViewModel> model = null;
try
{
model = _securityIPsWhiteListService.GetSecurityIPsWhiteListViewModel();
}
catch (Exception e)
{
Logger.generateError(e, null, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
return View(model);
}
}
}
其他代碼如下
ViewModel (SecurityIPsWhiteListViewModel.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Application.BusinessLogic.Model;
using System.ComponentModel.DataAnnotations;
namespace FF.Models.ViewModels.Admin.Security
{
public class SecurityIPsWhiteListViewModel
{
public SecurityIPsWhiteListViewModel()
{
}
public int Id { get; set; }
[Display(Name = "IP!!")]
public string IP { get; set; }
[Display(Name = "Description!!")]
public string Description { get; set; }
[Display(Name = "CreationDate!!")]
public System.DateTime CreationDate { get; set; }
[Display(Name = "CreationUserId!!")]
public int CreationUserId { get; set; }
}
}
interface (ISecurityIPsWhiteListService.cs)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FF.Services.ViewModels;
using Application.BusinessLogic.Model;
using FF.ViewModels.Admin.Translation;
using Application.Contracts;
using FF.Models.ViewModels.Admin.Security;
namespace FF.Services.Admin
{
public interface ISecurityIPsWhiteListService
{
IEnumerable<SecurityIPsWhiteList> GetSecurityIPsWhiteLists();
IEnumerable<SecurityIPsWhiteListViewModel> GetSecurityIPsWhiteListViewModel();
SecurityIPsWhiteList GetSecurityIPsWhiteListById(int id);
}
}
Services (SecurityIPsWhiteListService.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Application.BusinessLogic.Repositories;
using Application.BusinessLogic.Model;
using Application.Contracts;
using FF.Services.ViewModels;
using Application.Contracts.Helpers;
using OfficeOpenXml;
using OfficeOpenXml.Style;
using System.IO;
using System.Configuration;
using Application.Contracts.Extensions;
using FF.ViewModels.User.Shared;
using FF.ViewModels.Admin;
using FF.Models.ViewModels.Admin.Security;
using FF.Services.Admin.Services;
namespace FF.Services.Admin.Services
{
public class SecurityIPsWhiteListService : ISecurityIPsWhiteListService
{
private readonly IGenericRepository<SecurityIPsWhiteList> _securityIPsWhiteListRepository;
public SecurityIPsWhiteListService()
{
}
public SecurityIPsWhiteListService(
IGenericRepository<SecurityIPsWhiteList> securityIPsWhiteListRepository)
{
_securityIPsWhiteListRepository = securityIPsWhiteListRepository;
}
public IEnumerable<SecurityIPsWhiteList> GetSecurityIPsWhiteLists()
{
var m = new List<SecurityIPsWhiteList>();
try
{
m = _securityIPsWhiteListRepository.List().OrderBy(t => t.CreationDate).ToList();
}
catch (Exception e)
{
m = null;
Logger.generateError(e,
null,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
return m;
}
public IEnumerable<SecurityIPsWhiteListViewModel> GetSecurityIPsWhiteListViewModel()
{
var m = new List<SecurityIPsWhiteListViewModel>();
try
{
var IPsWhiteList = GetSecurityIPsWhiteListViewModel();
foreach (var ip in IPsWhiteList)
{
m.Add(new SecurityIPsWhiteListViewModel
{
Id = ip.Id,
IP = ip.IP,
Description = ip.Description,
CreationDate = ip.CreationDate,
CreationUserId = ip.CreationUserId,
});
}
}
catch (Exception e)
{
m = null;
Logger.generateError(e,
"Exception while creating View Model",
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
return m;
}
public SecurityIPsWhiteList GetSecurityIPsWhiteListById(int id)
{
var m = new SecurityIPsWhiteList();
try
{
m = _securityIPsWhiteListRepository.Get(id);
}
catch (Exception e)
{
m = null;
Logger.generateError(e,
"IP Id = " + id,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
return m;
}
}
}
Model (SecurityIPsWhiteList.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
namespace Application.BusinessLogic.Model
{
using System;
using System.Collections.Generic;
public partial class SecurityIPsWhiteList
{
public int Id { get; set; }
public System.DateTime CreationDate { get; set; }
public string Description { get; set; }
public int CreationUserId { get; set; }
public string IP { get; set; }
public virtual UserProfile CreationUser { get; set; }
}
}
我想知道, 空指標例外, 是我的model沒有實體化?
還是我其他地方的代碼寫錯了?比如我比較懷疑SecurityIPsWhiteListService.cs里的
public IEnumerable<SecurityIPsWhiteListViewModel> GetSecurityIPsWhiteListViewModel() {} 寫的有問題?
謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/267632.html
標籤:ASP.NET
上一篇:vs2017斷點突然斷開
下一篇:C#如何從登錄之后的網頁獲取資料
