我将模型值转换为控制器中的一个动作,并尝试通过将值设置为另一个对象来将值传递给另一个类中的另一个函数。在调用第二个函数的行中,该对象抛出null异常。它在if条件检查中也不显示null。 请在下面找到代码。
public ActionResult SearchBySecurity(SearchViewModel srchModel)
{
var searchDTO = new VisitorSearchDTO();
//_mapper.Map<SearchViewModel, VisitorSearchDTO>(srchModel,searchDTO);
searchDTO.VisitorFirstName = srchModel.VisitorFirstName;
searchDTO.VisitorContactNumber = srchModel.VisitorContactNumber;
searchDTO.VisitorCompany = srchModel.VisitorCompany;
searchDTO.VisitDate = srchModel.VisitDate;
if (searchDTO != null)
{
var searchResultsDTO = _searchVisitor.SearchForVisitors(searchDTO);
}
ModelState.Clear();
return View("SearchBySecurity",srchModel);
答案 0 :(得分:0)
我猜你在尝试映射你的模型时会得到null异常。你在使用AutoMapper吗?什么是_mapper?如果使用AutoMapper,那么如果您使用了任何自定义(之前,之后)映射,则可能需要检查一次映射配置文件代码。
按照每个人的建议休息,调试代码并更清楚地说明问题的位置,尝试的内容以及明确定义类型和环境
答案 1 :(得分:0)
感谢Stephen和Jinish的投入。 我设法解决了这个问题。 问题在于使用映射器和服务参数初始化控制器。在代码中占用了默认的无参数构造函数,因此映射器和服务对象未被初始化。通过正确实现接口和映射配置文件解决了这个问题。