所以我用一个来自viewbag的值填充@ Html.DisplayText但是当值存在时我得到一个ArgumentNullException。
这是行动方法
public ActionResult Index(DateTime? fechaInicio, DateTime? fechafin, string currentFilter, string searchString, int? page)
{
if (!fechaInicio.HasValue || !fechafin.HasValue) return View();
if (searchString == null)
searchString = currentFilter;
ViewBag.CurrentFilter = searchString;
ViewBag.CurrentFechaInicio = fechaInicio;
ViewBag.CurrentFechaFin = fechafin;
var param = new Parametros()
{
FechaInicio = fechaInicio.Value,
FechaFin = fechafin.Value
};
IEnumerable<Registro> registros = _registroRepository.ObtenerRegistros(param);
if (!String.IsNullOrEmpty(searchString))
{
registros = registros.Where(s => s.Patente.Contains(searchString));
}
if (!registros.Any())
return View("SinResultados");
int pageSize = 10;
int pageNumber = (page ?? 1);
return View("List",registros.ToPagedList(pageNumber, pageSize));
}
尝试改变
ViewBag.CurrentFechaInicio = fechaInicio;
到
ViewBag.CurrentFechaInicio = fechaInicio.Value;
但没有任何改变。
答案 0 :(得分:4)
事情是:它不是字符串而是DateTime,因此as string
返回null
你需要
.ToString()
方法
as
关键字“is like a cast”
请注意,as运算符仅执行引用转换,可空转换和装箱转换。 as运算符不能执行其他转换,例如用户定义的转换,而应使用转换表达式执行转换。